diff --git a/build.gradle b/build.gradle index ba709622a..b03e98369 100644 --- a/build.gradle +++ b/build.gradle @@ -125,7 +125,6 @@ subprojects { key = project.getProperties().get('bintrayKey') publications = ['mavenJava'] publish = true - dryRun = true pkg { repo = 'maven' name = 'mms-' + project.name diff --git a/localuser/src/main/java/org/openmbee/sdvc/localuser/config/AuthProviderConfig.java b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/AuthProviderConfig.java new file mode 100644 index 000000000..fa40ae41e --- /dev/null +++ b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/AuthProviderConfig.java @@ -0,0 +1,51 @@ +package org.openmbee.sdvc.localuser.config; + +import org.openmbee.sdvc.localuser.security.UserDetailsServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +public class AuthProviderConfig { + + private static Logger logger = LoggerFactory.getLogger(LocalUserSecurityConfig.class); + + private UserDetailsServiceImpl userDetailsService; + private PasswordEncoder passwordEncoder; + + @Value("${sdvc.admin.username}") + private String adminUsername; + @Value("${sdvc.admin.password}") + private String adminPassword; + + @Autowired + public void setUserDetailsService(UserDetailsServiceImpl userDetailsService) { + this.userDetailsService = userDetailsService; + } + + @Autowired + public void setPasswordEncoder(PasswordEncoder passwordEncoder) { + this.passwordEncoder = passwordEncoder; + } + + @Bean + public DaoAuthenticationProvider daoAuthenticationProvider() { + try { + userDetailsService.loadUserByUsername(adminUsername); + } catch (UsernameNotFoundException e) { + userDetailsService.register(adminUsername, adminPassword, true); + logger.info(String.format("Creating root user: %s with specified password.", + adminUsername)); + } + DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); + authProvider.setUserDetailsService(userDetailsService); + authProvider.setPasswordEncoder(passwordEncoder); + return authProvider; + } +} diff --git a/localuser/src/main/java/org/openmbee/sdvc/localuser/config/LocalUserSecurityConfig.java b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/LocalUserSecurityConfig.java index 998d835a7..be13fb86b 100644 --- a/localuser/src/main/java/org/openmbee/sdvc/localuser/config/LocalUserSecurityConfig.java +++ b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/LocalUserSecurityConfig.java @@ -1,67 +1,22 @@ package org.openmbee.sdvc.localuser.config; ; -import org.openmbee.sdvc.localuser.security.UserDetailsServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true) public class LocalUserSecurityConfig { private static Logger logger = LoggerFactory.getLogger(LocalUserSecurityConfig.class); - @Autowired - public UserDetailsServiceImpl userDetailsService; - @Value("${sdvc.admin.username}") - private String adminUsername; - @Value("${sdvc.admin.password}") - private String adminPassword; - - public LocalUserSecurityConfig() { - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(){ - //Turn off warnings for null/empty passwords - @Override - public boolean matches(CharSequence rawPassword, String encodedPassword) { - if (encodedPassword == null || encodedPassword.length() == 0) { - return false; - } - return super.matches(rawPassword, encodedPassword); - } - }; - } @Autowired - public void configureDaoAuth(AuthenticationManagerBuilder auth) { - auth.authenticationProvider(authenticationProvider()); - } - - @Bean - public DaoAuthenticationProvider authenticationProvider() { - try { - userDetailsService.loadUserByUsername(adminUsername); - } catch (UsernameNotFoundException e) { - userDetailsService.register(adminUsername, adminPassword, true); - logger.info(String.format("Creating root user: %s with specified password.", - adminUsername)); - } - DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); - authProvider.setUserDetailsService(userDetailsService); - authProvider.setPasswordEncoder(passwordEncoder()); - return authProvider; + public void configureDaoAuth(AuthenticationManagerBuilder auth, + DaoAuthenticationProvider daoAuthenticationProvider) { + auth.authenticationProvider(daoAuthenticationProvider); } - } diff --git a/localuser/src/main/java/org/openmbee/sdvc/localuser/config/PasswordEncoderConfig.java b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/PasswordEncoderConfig.java new file mode 100644 index 000000000..1c9655215 --- /dev/null +++ b/localuser/src/main/java/org/openmbee/sdvc/localuser/config/PasswordEncoderConfig.java @@ -0,0 +1,24 @@ +package org.openmbee.sdvc.localuser.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +public class PasswordEncoderConfig { + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(){ + //Turn off warnings for null/empty passwords + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + if (encodedPassword == null || encodedPassword.length() == 0) { + return false; + } + return super.matches(rawPassword, encodedPassword); + } + }; + } +}