Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. public class ApiApplication extends Application<ApiConfiguration>
  2. {
  3. private final Logger logger = LoggerFactory.getLogger(ApiApplication.class);
  4.  
  5. private ConfiguredBundle assetsBundle;
  6. private GuiceBundle guiceBundle;
  7.  
  8. private String name;
  9.  
  10. @Override
  11. public String getName()
  12. {
  13. return name;
  14. }
  15.  
  16. @Override
  17. public void initialize(Bootstrap<ApiConfiguration> bootstrap)
  18. {
  19. assetsBundle = (ConfiguredBundle) new ConfiguredAssetsBundle("/assets/", "/client", "index.html");
  20. guiceBundle = createGuiceBundle(ApiConfiguration.class, new ApiGuiceModule());
  21.  
  22. bootstrap.addBundle(assetsBundle);
  23. bootstrap.addBundle(guiceBundle);
  24. }
  25.  
  26. @Override
  27. public void run(ApiConfiguration configuration, Environment environment)
  28. {
  29. name = configuration.getApiName();
  30.  
  31. logger.info(String.format("Set API name to %s", name));
  32.  
  33. setupAuthentication(environment);
  34. configureClientFilter(environment);
  35. }
  36.  
  37. private GuiceBundle createGuiceBundle(Class<ApiConfiguration> configurationClass, Module module)
  38. {
  39. Builder guiceBuilder = GuiceBundle.<ApiConfiguration>newBuilder()
  40. .addModule(module)
  41. .enableAutoConfig(new String[] { "nl.hsleiden" })
  42. .setConfigClass(configurationClass);
  43.  
  44. return guiceBuilder.build();
  45. }
  46.  
  47. private void setupAuthentication(Environment environment)
  48. {
  49. AuthenticationService authenticationService = guiceBundle.getInjector().getInstance(AuthenticationService.class);
  50. ApiUnauthorizedHandler unauthorizedHandler = guiceBundle.getInjector().getInstance(ApiUnauthorizedHandler.class);
  51.  
  52. environment.jersey().register(new AuthDynamicFeature(
  53. new BasicCredentialAuthFilter.Builder<User>()
  54. .setAuthenticator(authenticationService)
  55. .setAuthorizer(authenticationService)
  56. .setRealm("SUPER SECRET STUFF")
  57. .setUnauthorizedHandler(unauthorizedHandler)
  58. .buildAuthFilter())
  59. );
  60.  
  61. environment.jersey().register(RolesAllowedDynamicFeature.class);
  62. environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
  63. }
  64.  
  65. private void configureClientFilter(Environment environment)
  66. {
  67. environment.getApplicationContext().addFilter(
  68. new FilterHolder(new ClientFilter()),
  69. "/*",
  70. EnumSet.allOf(DispatcherType.class)
  71. );
  72. }
  73.  
  74. public static void main(String[] args) throws Exception
  75. {
  76. new ApiApplication().run(args);
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement