AuthController에서 loadByUsername 메서드 실행 경로
1965
작성한 질문수 1
답변 1
1
authenticationManangerBuilder.getObject().authenticate() 메소드가 실행되면
1. AuthenticationManager 의 구현체인 ProviderManager 의 authenticate() 메소드가 실행됩니다
2. 해당 메소드에선 AuthenticaionProvider 인터페이스의 authenticate() 메소드를 실행하는데
해당 인터페이스에서 데이터베이스에 있는 이용자의 정보를 가져오는 UserDetailsService 인터페이스를 사용합니다.
3. 그래서 UserDetailsService 인터페이스의 loadUserByUsername() 메소드를 호출하게 됩니다.
따라서 CustomUserDetailsService 구현체에 오버라이드된 loadUserByUsername() 메소드를 호출하게 되는 것입니다.
스프링 시큐리티의 아키텍처를 참고하시면 도움될것같습니다
https://lilly021.com/spring-security-architecture/
0
저도 위와 같은 증상이 발생하여, AuthenticationProvider 를 직접 구현하여 해결하였습니다.
직접 구현한 provider는 builder 내부에 등록
1.
public class CustomAuthenticationProvider implements AuthenticationProvider {}
2.
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(customAuthenticationProvider);
}
0
위 내용은 근본적인 해결책이 아닌 일시적인 거라, 내부 클래스 다 뜯어서 해결했습니다.
원인은 UserDetailsService 를 구현한 객체가 2개라서 생성이 안되고 null로 들어가고 있었습니다.
@Order(InitializeUserDetailsBeanManagerConfigurer.DEFAULT_ORDER)
class InitializeUserDetailsBeanManagerConfigurer extends GlobalAuthenticationConfigurerAdapter {
private <T> T getBeanOrNull(Class<T> type) {
String[] beanNames = InitializeUserDetailsBeanManagerConfigurer.this.context.getBeanNamesForType(type);
if (beanNames.length != 1) {
return null;
}
return InitializeUserDetailsBeanManagerConfigurer.this.context.getBean(beanNames[0], type);
}
spring boot 3.x 버전 강의도 만들어주시면 안될까요?
0
68
1
3강 secret key 관련해서 질문있습니다
0
68
1
JwtFilter 에 TokenProvider 선언 시 final 키워드 빠진 이유
0
77
1
/api/authenticate 포스트맨 401 에러
0
225
1
Spring boot 3.x버전에서 data.sql 오류 발생할 경우
4
400
1
/api/hello 접근 시 401 나올 때 해결법
2
305
2
소스코드 전체 볼수 있을까요?
0
398
2
머이렇게 안되는게많노 ㅠ
1
759
2
스프링부트 3.x 버전 data.sql 삽입 오류 발생할 경우 해결 방법
6
1353
2
postman 결과가 다릅니다
0
360
2
body값이 비었습니다.
0
399
2
jjwt 버전을 올렸더니 jwt가 유효하지 않다고 합니다
0
3599
1
Refresh Token
0
506
1
유저 권한 설정
0
369
2
setAuthentication
0
497
1
postman에서 오류가 납니다..
0
1771
3
Spring boot 3.1.5 기준 학습 정리 파일 공유
1
1089
4
/api/hello에 접근이 안됩니다 ㅠㅠ
0
1083
2
mysql 설정로 실습시
0
876
2
유효한 JWT 토큰이 없습니다
0
667
2
8:45 spring security 3.1.5 설정 방법 (버전 안 맞춰서 안될때)
1
2283
2
2:00 에서 저처럼 버전 안 맞춰서 해서 헤매는 분들 이걸로 해보세요.
0
1277
3
JWT String argument cannot be null or empty.
0
2168
2
new User 생성자 오류 발생하는 분들...
6
502
2





