/refapp-plugins/auth-plugin/src/main/java/com/atlassian/refapp/auth/spring/SpringBeans.java
Java | 133 lines | 107 code | 21 blank | 5 comment | 0 complexity | 2aafb5f02a2aea2ec3415bf03d3720f3 MD5 | raw file
- package com.atlassian.refapp.auth.spring;
- import com.atlassian.refapp.auth.external.WebSudoSessionManager;
- import com.atlassian.refapp.auth.internal.AtlassianUserAuthenticator;
- import com.atlassian.refapp.auth.internal.AuthPluginRepositoryIdentifier;
- import com.atlassian.refapp.auth.internal.AuthenticationInitialization;
- import com.atlassian.refapp.auth.internal.DefaultWebSudoSessionManager;
- import com.atlassian.refapp.auth.internal.GroupRoleMapper;
- import com.atlassian.seraph.auth.AuthenticationContext;
- import com.atlassian.seraph.auth.AuthenticationContextImpl;
- import com.atlassian.seraph.auth.RoleMapper;
- import com.atlassian.user.GroupManager;
- import com.atlassian.user.UserManager;
- import com.atlassian.user.impl.memory.MemoryGroupManager;
- import com.atlassian.user.impl.memory.MemoryUserManager;
- import com.atlassian.user.impl.memory.provider.MemoryProvider;
- import com.atlassian.user.impl.osuser.security.password.OSUPasswordEncryptor;
- import com.atlassian.user.repository.RepositoryIdentifier;
- import com.atlassian.user.security.authentication.Authenticator;
- import com.atlassian.user.security.authentication.DefaultAuthenticator;
- import com.atlassian.user.security.password.PasswordEncryptor;
- import com.atlassian.webresource.api.assembler.PageBuilderService;
- import org.osgi.framework.ServiceRegistration;
- import org.springframework.beans.factory.FactoryBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import static com.atlassian.plugins.osgi.javaconfig.ExportOptions.as;
- import static com.atlassian.plugins.osgi.javaconfig.OsgiServices.exportOsgiService;
- import static com.atlassian.plugins.osgi.javaconfig.OsgiServices.importOsgiService;
- /**
- * Transformerless spring bean configuration.
- * See <a href="https://developer.atlassian.com/server/framework/atlassian-sdk/spring-java-config/">Spring Java Config</a>
- * @since 5.1.3
- */
- @Configuration
- public class SpringBeans {
- @Bean
- public Authenticator authenticator(UserManager userManager, PasswordEncryptor passwordEncryptor) {
- return new DefaultAuthenticator(userManager, passwordEncryptor);
- }
- @Bean
- public AuthenticationContext authenticationContext() {
- return new AuthenticationContextImpl();
- }
- @Bean
- public AuthenticationInitialization authenticationInitialization(UserManager userManager, GroupManager groupManager) {
- return new AuthenticationInitialization(userManager, groupManager);
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportAuthenticationContext(final AuthenticationContext authenticationContext) {
- return exportOsgiService(authenticationContext, as(AuthenticationContext.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportAuthenticator(final Authenticator authenticator) {
- return exportOsgiService(authenticator, as(Authenticator.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportGroupManager(final GroupManager groupManager) {
- return exportOsgiService(groupManager, as(GroupManager.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportPasswordEncryptor(final PasswordEncryptor passwordEncryptor) {
- return exportOsgiService(passwordEncryptor, as(PasswordEncryptor.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportRoleMapper(final RoleMapper roleMapper) {
- return exportOsgiService(roleMapper, as(RoleMapper.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportUserManager(final UserManager userManager) {
- return exportOsgiService(userManager, as(UserManager.class));
- }
- @Bean
- public FactoryBean<ServiceRegistration> exportWebSudoSessionManager(final WebSudoSessionManager webSudoSessionManager) {
- return exportOsgiService(webSudoSessionManager, as(WebSudoSessionManager.class));
- }
- @Bean
- public GroupManager groupManager(RepositoryIdentifier repositoryIdentifier, MemoryProvider memoryProvider) {
- return new MemoryGroupManager(repositoryIdentifier, memoryProvider);
- }
- @Bean
- public MemoryProvider memoryProvider() {
- return new MemoryProvider();
- }
- @Bean
- public PageBuilderService pageBuilderService() {
- return importOsgiService(PageBuilderService.class);
- }
- @Bean
- public PasswordEncryptor passwordEncryptor() {
- return new OSUPasswordEncryptor();
- }
- @Bean
- public RepositoryIdentifier repositoryIdentier() {
- return new AuthPluginRepositoryIdentifier();
- }
- @Bean
- public RoleMapper roleMapper(com.atlassian.seraph.auth.Authenticator seraphAuthenticator, GroupManager groupManager) {
- return new GroupRoleMapper(seraphAuthenticator, groupManager);
- }
- @Bean
- public AtlassianUserAuthenticator seraphAuthenticator(UserManager userManager, Authenticator authenticator, WebSudoSessionManager websudoManager) {
- return new AtlassianUserAuthenticator(userManager, authenticator, websudoManager);
- }
- @Bean
- public UserManager userManager(RepositoryIdentifier repository, MemoryProvider memoryProvider, PasswordEncryptor passwordEncryptor) {
- return new MemoryUserManager(repository, memoryProvider, passwordEncryptor);
- }
- @Bean
- public WebSudoSessionManager webSudoSessionManager() {
- return new DefaultWebSudoSessionManager();
- }
- }