티스토리 뷰
기존에 공부했던 시큐리티 형식이 변경되면서 많은 혼란이 오고 있네요.
특히 저같이 수박 걷핧기 하듯이 공부를 했던 사람들은 더 힘들 것 같습니다. 기본이 중요하다는 사실을 다시한번 알게 됩니다.
Spring Security 5.7.0-M2 이후부터는 더이상 WebSecurityConfigurerAdapter 를 extends 해서 쓰지 않게 되면서 Configure 메서드를 오버라이딩 해서 사용했던 InMemory 방식의 유저추가는 다른 형태로 사용할 수 있습니다.
//이렇게 사용했었습니다.
@Ovrride
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
String password = passwordEncoder.encode("1234");
auth.inMemoryAuthentication().withUser("user").password(password).roles("USER");
}
하지만 WebSecurityConfigurerAdapter를 더 이상 사용하지 않기 때문에 이를 사용할 수는 없고, 다음 방식으로 사용할 수 있습니다.
//유저 추가
@Bean
public InMemoryUserDetailsManager userDetailsManager() {
UserDetails user = User.builder()
.username("user")
.password(passwordEncoder.encode("1234"))
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
또한 여러명의 유저를 등록해서 테스트 해 보고 싶은 경우에도 가능합니다. InMemoryUserDetailsManager 메서드를 가진 InMemoryUserDetailsManager.class 를 보면 복수 유저를 받을 수 있으며, 컬랙션 형태, 프로파일에서도 읽어 들일 수 있습니다.
public InMemoryUserDetailsManager(UserDetails... users) {
for (UserDetails user : users) {
createUser(user);
}
}
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
'Study > Java' 카테고리의 다른 글
UserDetailsService (0) | 2022.10.04 |
---|---|
WebIgnore 설정 (0) | 2022.09.30 |
Spring Boot 구동 시 DB 스크립트를 수행하게 처리 (0) | 2021.01.17 |
SpringBoot Junit5 설정 관련 (gradle) (0) | 2020.12.12 |
application.yml 테스팅 환경 분리 (0) | 2020.05.06 |