Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ApiApplication extends Application<ApiConfiguration>
- {
- private final Logger logger = LoggerFactory.getLogger(ApiApplication.class);
- private ConfiguredBundle assetsBundle;
- private GuiceBundle guiceBundle;
- private String name;
- @Override
- public String getName()
- {
- return name;
- }
- @Override
- public void initialize(Bootstrap<ApiConfiguration> bootstrap)
- {
- assetsBundle = (ConfiguredBundle) new ConfiguredAssetsBundle("/assets/", "/client", "index.html");
- guiceBundle = createGuiceBundle(ApiConfiguration.class, new ApiGuiceModule());
- bootstrap.addBundle(assetsBundle);
- bootstrap.addBundle(guiceBundle);
- }
- @Override
- public void run(ApiConfiguration configuration, Environment environment)
- {
- name = configuration.getApiName();
- logger.info(String.format("Set API name to %s", name));
- setupAuthentication(environment);
- configureClientFilter(environment);
- }
- private GuiceBundle createGuiceBundle(Class<ApiConfiguration> configurationClass, Module module)
- {
- Builder guiceBuilder = GuiceBundle.<ApiConfiguration>newBuilder()
- .addModule(module)
- .enableAutoConfig(new String[] { "nl.hsleiden" })
- .setConfigClass(configurationClass);
- return guiceBuilder.build();
- }
- private void setupAuthentication(Environment environment)
- {
- AuthenticationService authenticationService = guiceBundle.getInjector().getInstance(AuthenticationService.class);
- ApiUnauthorizedHandler unauthorizedHandler = guiceBundle.getInjector().getInstance(ApiUnauthorizedHandler.class);
- environment.jersey().register(new AuthDynamicFeature(
- new BasicCredentialAuthFilter.Builder<User>()
- .setAuthenticator(authenticationService)
- .setAuthorizer(authenticationService)
- .setRealm("SUPER SECRET STUFF")
- .setUnauthorizedHandler(unauthorizedHandler)
- .buildAuthFilter())
- );
- environment.jersey().register(RolesAllowedDynamicFeature.class);
- environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
- }
- private void configureClientFilter(Environment environment)
- {
- environment.getApplicationContext().addFilter(
- new FilterHolder(new ClientFilter()),
- "/*",
- EnumSet.allOf(DispatcherType.class)
- );
- }
- public static void main(String[] args) throws Exception
- {
- new ApiApplication().run(args);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement