提交 53e08eab 编写于 作者: alvachien's avatar alvachien

Try to use password encoder

上级 592804fc
......@@ -3,6 +3,7 @@ package com.poc.alvachien.authserverdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.oauth2.core.AuthorizationGrantType;
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
import org.springframework.security.oauth2.core.oidc.OidcScopes;
......@@ -28,26 +29,29 @@ public class AuthServerDemoApplication {
}
@Bean
public CommandLineRunner preparetestdata(UserAccountRepository userRepository, JpaRegisteredClientRepository clientRepository) {
public CommandLineRunner preparetestdata(UserAccountRepository userRepository, JpaRegisteredClientRepository clientRepository,
PasswordEncoder passwordEncoder) {
return (args) -> {
log.info("Entering CommandLineRunner");
Long userCnt = userRepository.count();
log.info("User Count = " + userCnt);
if (userCnt == 0) {
log.info("No User found, insert the default one");
UserAccount ua = new UserAccount();
ua.setUsername("test");
ua.setPassword("test");
ua.setPassword(passwordEncoder.encode("test"));
ua.setActive(true);
userRepository.save(ua);
log.info("Test User 'test' created");
userCnt = userRepository.count();
log.info("User Count = " + userCnt);
}
userCnt = userRepository.count();
log.info("User Count = " + userCnt);
Long clientCnt = clientRepository.count();
log.info("Client Count = " + userCnt);
if (clientCnt == 0) {
log.info("No Client found, insert the default one");
RegisteredClient client = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("angular-client")
.clientSecret("{noop}secret")
......@@ -66,9 +70,10 @@ public class AuthServerDemoApplication {
clientRepository.save(client);
log.info("Test Client 'angular-client' created");
clientCnt = clientRepository.count();
log.info("Client Count = " + userCnt);
}
clientCnt = clientRepository.count();
log.info("Client Count = " + userCnt);
// // save a few customers
// repository.save(new Customer("Jack", "Bauer"));
......@@ -101,7 +106,6 @@ public class AuthServerDemoApplication {
// for (Customer bauer : repository.findByLastName("Bauer")) {
// log.info(bauer.toString());
// }
log.info("");
};
}
}
......@@ -4,6 +4,8 @@ import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
......@@ -35,6 +37,12 @@ import org.springframework.security.oauth2.server.authorization.token.JwtEncodin
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenCustomizer;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
import org.springframework.security.crypto.argon2.Argon2PasswordEncoder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.DelegatingPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
@Configuration
public class SecurityConfig {
......@@ -49,8 +57,10 @@ public class SecurityConfig {
@Order(1)
public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {
OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
//http.sessionManagement().
http.getConfigurer(OAuth2AuthorizationServerConfigurer.class)
.oidc(Customizer.withDefaults()); // Enable OpenID Connect 1.0
http
// Redirect to the login page when not authenticated from the
// authorization endpoint
......@@ -120,18 +130,6 @@ public class SecurityConfig {
};
}
// @Bean
// public UserDetailsService userDetailsService() {
// PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
// UserDetails userDetails = User.withUsername("user")
// .password(encoder.encode("password"))
// .roles("USER")
// .build();
// return new InMemoryUserDetailsManager(userDetails);
// }
@Bean
public JWKSource<SecurityContext> jwkSource() {
KeyPair keyPair = generateRsaKey();
......@@ -165,6 +163,26 @@ public class SecurityConfig {
@Bean
public AuthorizationServerSettings authorizationServerSettings() {
return AuthorizationServerSettings.builder().build();
return AuthorizationServerSettings.builder()
.build();
}
@Bean
public PasswordEncoder passwordEncoder() {
String idForEncode = "bcrypt";
Map encoders = new HashMap<>();
encoders.put(idForEncode, new BCryptPasswordEncoder());
//encoders.put("noop", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_5());
encoders.put("pbkdf2@SpringSecurity_v5_8", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8());
//encoders.put("scrypt", SCryptPasswordEncoder.defaultsForSpringSecurity_v4_1());
encoders.put("scrypt@SpringSecurity_v5_8", SCryptPasswordEncoder.defaultsForSpringSecurity_v5_8());
//encoders.put("argon2", Argon2PasswordEncoder.defaultsForSpringSecurity_v5_2());
encoders.put("argon2@SpringSecurity_v5_8", Argon2PasswordEncoder.defaultsForSpringSecurity_v5_8());
//encoders.put("sha256", new StandardPasswordEncoder());
PasswordEncoder passwordEncoder = new DelegatingPasswordEncoder(idForEncode, encoders);
return passwordEncoder;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册