PageRenderTime 47ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/refapp-plugins/auth-plugin/src/main/java/com/atlassian/refapp/auth/spring/SpringBeans.java

https://bitbucket.org/atlassian/atlassian-refapp
Java | 133 lines | 107 code | 21 blank | 5 comment | 0 complexity | 2aafb5f02a2aea2ec3415bf03d3720f3 MD5 | raw file
  1. package com.atlassian.refapp.auth.spring;
  2. import com.atlassian.refapp.auth.external.WebSudoSessionManager;
  3. import com.atlassian.refapp.auth.internal.AtlassianUserAuthenticator;
  4. import com.atlassian.refapp.auth.internal.AuthPluginRepositoryIdentifier;
  5. import com.atlassian.refapp.auth.internal.AuthenticationInitialization;
  6. import com.atlassian.refapp.auth.internal.DefaultWebSudoSessionManager;
  7. import com.atlassian.refapp.auth.internal.GroupRoleMapper;
  8. import com.atlassian.seraph.auth.AuthenticationContext;
  9. import com.atlassian.seraph.auth.AuthenticationContextImpl;
  10. import com.atlassian.seraph.auth.RoleMapper;
  11. import com.atlassian.user.GroupManager;
  12. import com.atlassian.user.UserManager;
  13. import com.atlassian.user.impl.memory.MemoryGroupManager;
  14. import com.atlassian.user.impl.memory.MemoryUserManager;
  15. import com.atlassian.user.impl.memory.provider.MemoryProvider;
  16. import com.atlassian.user.impl.osuser.security.password.OSUPasswordEncryptor;
  17. import com.atlassian.user.repository.RepositoryIdentifier;
  18. import com.atlassian.user.security.authentication.Authenticator;
  19. import com.atlassian.user.security.authentication.DefaultAuthenticator;
  20. import com.atlassian.user.security.password.PasswordEncryptor;
  21. import com.atlassian.webresource.api.assembler.PageBuilderService;
  22. import org.osgi.framework.ServiceRegistration;
  23. import org.springframework.beans.factory.FactoryBean;
  24. import org.springframework.context.annotation.Bean;
  25. import org.springframework.context.annotation.Configuration;
  26. import static com.atlassian.plugins.osgi.javaconfig.ExportOptions.as;
  27. import static com.atlassian.plugins.osgi.javaconfig.OsgiServices.exportOsgiService;
  28. import static com.atlassian.plugins.osgi.javaconfig.OsgiServices.importOsgiService;
  29. /**
  30. * Transformerless spring bean configuration.
  31. * See <a href="https://developer.atlassian.com/server/framework/atlassian-sdk/spring-java-config/">Spring Java Config</a>
  32. * @since 5.1.3
  33. */
  34. @Configuration
  35. public class SpringBeans {
  36. @Bean
  37. public Authenticator authenticator(UserManager userManager, PasswordEncryptor passwordEncryptor) {
  38. return new DefaultAuthenticator(userManager, passwordEncryptor);
  39. }
  40. @Bean
  41. public AuthenticationContext authenticationContext() {
  42. return new AuthenticationContextImpl();
  43. }
  44. @Bean
  45. public AuthenticationInitialization authenticationInitialization(UserManager userManager, GroupManager groupManager) {
  46. return new AuthenticationInitialization(userManager, groupManager);
  47. }
  48. @Bean
  49. public FactoryBean<ServiceRegistration> exportAuthenticationContext(final AuthenticationContext authenticationContext) {
  50. return exportOsgiService(authenticationContext, as(AuthenticationContext.class));
  51. }
  52. @Bean
  53. public FactoryBean<ServiceRegistration> exportAuthenticator(final Authenticator authenticator) {
  54. return exportOsgiService(authenticator, as(Authenticator.class));
  55. }
  56. @Bean
  57. public FactoryBean<ServiceRegistration> exportGroupManager(final GroupManager groupManager) {
  58. return exportOsgiService(groupManager, as(GroupManager.class));
  59. }
  60. @Bean
  61. public FactoryBean<ServiceRegistration> exportPasswordEncryptor(final PasswordEncryptor passwordEncryptor) {
  62. return exportOsgiService(passwordEncryptor, as(PasswordEncryptor.class));
  63. }
  64. @Bean
  65. public FactoryBean<ServiceRegistration> exportRoleMapper(final RoleMapper roleMapper) {
  66. return exportOsgiService(roleMapper, as(RoleMapper.class));
  67. }
  68. @Bean
  69. public FactoryBean<ServiceRegistration> exportUserManager(final UserManager userManager) {
  70. return exportOsgiService(userManager, as(UserManager.class));
  71. }
  72. @Bean
  73. public FactoryBean<ServiceRegistration> exportWebSudoSessionManager(final WebSudoSessionManager webSudoSessionManager) {
  74. return exportOsgiService(webSudoSessionManager, as(WebSudoSessionManager.class));
  75. }
  76. @Bean
  77. public GroupManager groupManager(RepositoryIdentifier repositoryIdentifier, MemoryProvider memoryProvider) {
  78. return new MemoryGroupManager(repositoryIdentifier, memoryProvider);
  79. }
  80. @Bean
  81. public MemoryProvider memoryProvider() {
  82. return new MemoryProvider();
  83. }
  84. @Bean
  85. public PageBuilderService pageBuilderService() {
  86. return importOsgiService(PageBuilderService.class);
  87. }
  88. @Bean
  89. public PasswordEncryptor passwordEncryptor() {
  90. return new OSUPasswordEncryptor();
  91. }
  92. @Bean
  93. public RepositoryIdentifier repositoryIdentier() {
  94. return new AuthPluginRepositoryIdentifier();
  95. }
  96. @Bean
  97. public RoleMapper roleMapper(com.atlassian.seraph.auth.Authenticator seraphAuthenticator, GroupManager groupManager) {
  98. return new GroupRoleMapper(seraphAuthenticator, groupManager);
  99. }
  100. @Bean
  101. public AtlassianUserAuthenticator seraphAuthenticator(UserManager userManager, Authenticator authenticator, WebSudoSessionManager websudoManager) {
  102. return new AtlassianUserAuthenticator(userManager, authenticator, websudoManager);
  103. }
  104. @Bean
  105. public UserManager userManager(RepositoryIdentifier repository, MemoryProvider memoryProvider, PasswordEncryptor passwordEncryptor) {
  106. return new MemoryUserManager(repository, memoryProvider, passwordEncryptor);
  107. }
  108. @Bean
  109. public WebSudoSessionManager webSudoSessionManager() {
  110. return new DefaultWebSudoSessionManager();
  111. }
  112. }