티스토리 뷰

SecurityConfig.kt
class SecurityConfig(
    private val jwtAuthenticationProvider: JwtAuthenticationProvider,

SecurityConfig 에서는 JWTConfig 에 Provider를 인자로 넘겨주기 때문에 JwtAuthenticationProvider 를 주입받는다.

 

JwtAuthenticationProvider
@Component
class JwtAuthenticationProvider(
    @Value("\${jwt.secret}")
    val secret: String,
    @Value("\${jwt.token-validity-in-seconds}")
    val tokenValidityInSeconds: Long,
    private val jwtUserDetailsService: JwtUserDetailsService

JwtAuthenticationProvider 에서는 JwtUserDetailsService 를 통해 사용자의 정보를 가져와서 인증과정을 진행해야하기 때문에 JwtUserDetailsService 를 주입받는다. 

JwtUserDetailsService 
@Component
class JwtUserDetailsService(
    private val userService: UserService

JwtUserDetailsService 는 username 을 통해 userDetails 를 가져오기 위해 UserService 를 주입받았다

JwtUserDetailsService
@Service
class UserService(
    private val userEntityRepository: UserEntityRepository,
    private val passwordEncoder: PasswordEncoder

 

UserService는 Security Config 에 빈으로 등록된 passwordEncoder 를 주입받는다.

 

SecurityConfig -> JwtAuthenticationProvider -> JwtUserDetailsService -> JwtUserDetailsService -> SecurityConfig

로 서로 주입받아서 순환이 생겨버린것.. 

 

해결방법은 순환이 생기지 않도록 연관관계를 끊어주도록 설계하면 됨

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함