Commit dcfa536c authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

use mongodb deployed on vps

parent dd28388a
dbHost: localhost dbHost: 46.4.242.141
dbPort: 27017 dbPort: 27017
dbName: db dbName: db
......
...@@ -27,20 +27,23 @@ import java.util.stream.Stream; ...@@ -27,20 +27,23 @@ import java.util.stream.Stream;
/** /**
* Created by gpietrus on 16.02.16. * Created by gpietrus on 16.02.16.
*/ */
public class CTFApplication extends Application<ApplicationConfiguration> { public class CTFApplication extends Application<ApplicationConfiguration>
{
private Datastore datastore; private Datastore datastore;
private Injector injector; private Injector injector;
@Override @Override
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) { public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap)
{
bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html")); bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html"));
Stream.of("org.webjars.npm", "org.webjars.bower") Stream.of("org.webjars.npm", "org.webjars.bower")
.map(WebJarBundle::new) .map(WebJarBundle::new)
.forEach(bootstrap::addBundle); .forEach(bootstrap::addBundle);
} }
private void registerResources(Environment environment) { private void registerResources(Environment environment)
{
JerseyEnvironment jersey = environment.jersey(); JerseyEnvironment jersey = environment.jersey();
jersey.register(injector.getInstance(TeamsResource.class)); jersey.register(injector.getInstance(TeamsResource.class));
jersey.register(injector.getInstance(TasksResource.class)); jersey.register(injector.getInstance(TasksResource.class));
...@@ -49,7 +52,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -49,7 +52,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
jersey.register(injector.getInstance(TaskResource.class)); jersey.register(injector.getInstance(TaskResource.class));
} }
private void registerAuthFeatures(Environment environment) { private void registerAuthFeatures(Environment environment)
{
environment.jersey().register(new AuthDynamicFeature( environment.jersey().register(new AuthDynamicFeature(
new BasicCredentialAuthFilter.Builder<User>() new BasicCredentialAuthFilter.Builder<User>()
.setAuthenticator(injector.getInstance(ExampleAuthenticator.class)) .setAuthenticator(injector.getInstance(ExampleAuthenticator.class))
...@@ -61,7 +65,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -61,7 +65,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
} }
@Override @Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception { public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception
{
injector = createInjector(applicationConfiguration); injector = createInjector(applicationConfiguration);
registerAdmins(applicationConfiguration); registerAdmins(applicationConfiguration);
...@@ -76,29 +81,36 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -76,29 +81,36 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
} }
//todo: remove //todo: remove
public class ExampleAuthorizer implements Authorizer<User> { public class ExampleAuthorizer implements Authorizer<User>
{
@Override @Override
public boolean authorize(User user, String role) { public boolean authorize(User user, String role)
{
return user.getName().equals("good-guy") && role.equals("ADMIN"); return user.getName().equals("good-guy") && role.equals("ADMIN");
} }
} }
private Injector createInjector(ApplicationConfiguration applicationConfiguration) { private Injector createInjector(ApplicationConfiguration applicationConfiguration)
return Guice.createInjector(new AbstractModule() { {
return Guice.createInjector(new AbstractModule()
{
@Override @Override
protected void configure() { protected void configure()
{
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor
Morphia morphia = new Morphia(); Morphia morphia = new Morphia();
morphia.mapPackage("objects.Team"); morphia.mapPackage("objects.Team");
datastore = morphia.createDatastore(new MongoClient(), "db"); //todo: db name from conf datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(),applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.ensureIndexes(); datastore.ensureIndexes();
bind(Datastore.class).toInstance(datastore); bind(Datastore.class).toInstance(datastore);
} }
}); });
} }
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception
{
new CTFApplication().run(args); new CTFApplication().run(args);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment