반응형
SMALL
우당탕탕 강의를 들으며 코드를 작성해가는 중입니다 ㅇㅁㅇ ..!! 오늘의 문제 발생
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("{noop}user123").roles("USER")
.and()
.withUser("admin").password("{noop}admin123").roles("ADMIN")
;
}
어제와 다름 없이 사용 중지된 Adapter에서 오버라이딩 하여 inMemoryAuthentication() 이라는 메서드를 사용하여 사용자와 관리자 계정을 추가했다. 그래서 대체 방안이 필요했다.
@Bean
public UserDetailsService userDetailsService() {
User.UserBuilder userBuilder = User.withDefaultPasswordEncoder();
UserDetails user = userBuilder
.username("user")
.password("user123")
.roles("USER")
.build();
UserDetails admin = User.withDefaultPasswordEncoder()
.username("admin")
.password("{noop}admin123")
.roles("ADMIN")
.build();
return new InMemoryUserDetailsManager(user, admin);
}
Bean으로 등록한다! UserBuilder에 withDefaultPasswordEncdoer() 메서드를 추가해서 계정을 추가한 후, InMemoryUserDetailManager로 넘겨줌으로써 대체할 수 있었다.
In-Memory Authentication과 관련하여 공식 문서를 참고할 수 있었다.
하지만 여기서 문제 발생 !
withDefaultPasswordEncdoer 도 중지되었다. 와우 !~!
다시 찾아보니 PasswordEncoder도 빈으로 따로 등록주어야 했다.
위 글을 참고해서 PasswordEncoder을 NoOpPasswordEncoder로 반환하고자 했다. (미션의 조건이었기 때문에)
??? 근데 NoOpPasswordEncoder도 중지되었다고 한다. ((뭥미))
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
그래서 그냥 디폴트 값으로 PasswordEncoder를 가져오도록 처리했다.
위에 두 곳을 유용하게 참고했다. ㅎㅁㅎ
수정한 코드 전체
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.builder()
.username("user")
.password(passwordEncoder().encode("user123"))
.roles("USER")
.build();
UserDetails admin = User.builder()
.username("admin")
.password(passwordEncoder().encode("admin123"))
.roles("ADMIN")
.build();
return new InMemoryUserDetailsManager(user, admin);
}
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
잘 나온다 ㅠㅠ ((눙물))
반응형
LIST
'Server > Spring' 카테고리의 다른 글
[날카로운 질문하는 머쓱이] 빈 스코프에 따른 생명 주기 (0) | 2022.12.24 |
---|---|
[날카로운 질문하는 머쓱이] N+1 문제 (0) | 2022.12.14 |
[우당탕탕 개발일지] WebSecurityConfigurerAdapter 지원 불가 (0) | 2022.12.12 |
[우당탕탕 개발일지] JPA Repository 오류, Not a managed type: class java.lang.Object (0) | 2022.12.08 |
[TIL] 영속성 컨텍스트 (Persistence Context) (0) | 2022.12.06 |