Authentication
μΈμ¦ μ λ³΄λ‘ μ¬μ©μμ μΈμ¦μ 보λ₯Ό μ μ₯νλ ν ν°κ°μ κ°λ
μΈμ¦μ id/passwordλ₯Ό λ΄κ³ μΈμ¦ κ²μ¦μ μν΄ μ΄λ₯Ό μ λ¬/μ¬μ©νλ€.
μΈμ¦ νμλ μ΅μ’ κ²°κ³Ό(μΈμ¦ 주체/κ°μ²΄/λΉλ°λ²νΈ/κΆνμ 보 λ±)λ₯Ό λ΄κ³ SecurityContextμ μ μ₯λμ΄ μ μμΌλ‘ μ°Έμ‘° κ°λ₯νλ€.
ꡬ쑰
principal : μΈμ¦ 주체(idλ Userκ°μ²΄μ κ°μ΄ μ¬μ©μλ₯Ό μλ³)
credentials : λΉλ°λ²νΈ
authorities : κΆν, μν
details : λΆκ° μ 보
Authenticated : μΈμ¦ μ¬λΆ(T/F)
κ³Όμ
Id/Pwλ₯Ό μλ²μ μ λ¬
UsernamePasswordAuthenticationFilterμμ μ΄λ₯Ό νν°λ§
μμ²ν Id/PWλ₯Ό λ΄μ Authentication κ°μ²΄ μμ±
AuthenticationManagerμκ² μ΄ μΈμ¦ κ°μ²΄ μ λ¬(μμ )
Managerλ μ ν©ν μΈμ¦κ°μ²΄ Providerμκ² μΈμ¦κ°μ²΄ μ λ¬
Providerλ μμ² μ 보λ₯Ό μ΄μ©ν΄ μΈμ¦κ³Όμ μν
μΈμ¦μ΄ μ±κ³΅νλ€λ©΄ κΆνκ³Ό μΈμ¦ μ¬λΆλ₯Ό μ ν ν μΈμ¦κ°μ²΄λ₯Ό SecurityContextμ μ μ₯
UsernamePasswordAuthenticationFilter
μ¬μ©μ μΈμ¦ μμ²μ Authentication
μΈν°νμ΄μ€λ‘ μΆμννκ³ , AuthenticationManager
λ₯Ό νΈμΆνλ€.
Authentication
μ€μ μ¬μ©μ μΈμ¦ μ 보λ₯Ό μλ―Ένλ μΈν°νμ΄μ€
Principal : μ¬μ©μλ₯Ό ꡬλΆ(μΌμ’ μ id) -> μ κ·Ό 주체
Credentials : μ κ·Ό 주체μ λΉλ°λ²νΈ
Authorities : μ¬μ©μμ ROLE
getPricipal()(μΈμ¦ μμ΄λ)
, getCredentials()(μΈμ¦ λΉλ°λ²νΈ)
, getAuthorities()(μ¬μ©μ κΆνλͺ©λ‘)
, getDetails()(λΆκ°μ 보)
, isAuthenticated()(μΈμ¦μ¬λΆ)
μ κ°μ λ©μλ μ 곡
AuthenticaitonManager
μ¬μ©μ μμ΄λ/λΉλ°λ²νΈλ₯Ό μΈμ¦νκΈ° μν΄ μ μ ν AuthenticationProvider
μ°Ύμ μ²λ¦¬λ₯Ό μμνλ€. ꡬνκ°μ²΄λ‘ ProviderManagerλ₯Ό μ 곡νλ€.
(κΈ°λ³Έ ProviderMansgerμμ FormμΈμ¦(DaoAuthenticationProvider
)μ , RememberMeμΈμ¦(RememberMeAuthenticationProvider
)μ μ 곡 )
κΈ°λ³Έμ μΌλ‘ μ 곡νλ Providerκ° μλ JWT, OAuthμ κ°μ λ³λμ μΈμ¦μ μΆκ° νκ³ μ νλ©΄ λΆλͺ¨ProviderManagerλ₯Ό νμν΄μ μ²λ¦¬ν μ μλ providerλ₯Ό μ°Ύλλ€.
spring 보μ μΈμ¦ νλ‘μΈμ€μ ν΅μ¬μΌλ‘ λ°©λ²μ μ μνλ api
컀μ€ν providerλ₯Ό λ§λ€μλ€λ©΄ λ±λ‘ν΄μ£Όμ΄μΌ νλ€
AuthenticationProvider
μ€μ§μ μΌλ‘ μ¬μ©μ μΈμ¦μ μ²λ¦¬νκ³ , μΈμ¦ κ²°κ³Όλ₯Ό Authentication μΈν°νμ΄μ€λ‘ λ°ννλ€.
컀μ€ν providerλ₯Ό λ§λ€κ³ μ νλ€λ©΄ μ΄λ₯Ό implementsνμ¬ κ΅¬ν
authenticate()
μμ μ€μ μΈμ¦μ μ²λ¦¬νκ³ supports()
λ AuthenticationManagerμμ μμ²μΈμ¦κ°μ²΄μ μ ν©ν¨ Providerλ₯Ό μ°ΎκΈ° μν λ©μλμ΄λ€.
UserDetails
μ¬μ©μμ μ 보λ₯Ό λ΄λ μΈν°νμ΄μ€λ‘ VOμν
getAuthorities() : κ³μ μ΄ κ°κ³ μλ κΆν λͺ©λ‘μ 리ν΄
getPassword() : κ³μ μ λΉλ°λ²νΈλ₯Ό 리ν΄
getUsername() : κ³μ μ μ΄λ¦μ 리ν΄
isAccountNonExpired() : κ³μ μ΄ λ§λ£λμ§ μμλ μ§ λ¦¬ν΄ (true: λ§λ£μλ¨)
isAccountNonLocked() : κ³μ μ΄ μ 겨μμ§ μμλ μ§ λ¦¬ν΄ (true: μ κΈ°μ§ μμ)
isCredentialNonExpired() : λΉλ°λ²νΈκ° λ§λ£λμ§ μμλ μ§ λ¦¬ν΄ (true: λ§λ£μλ¨)
isEnabled() : κ³μ μ΄ νμ±ν(μ¬μ©κ°λ₯)μΈ μ§ λ¦¬ν΄ (true: νμ±ν)
UserDetailsService : DAOλ‘ μ¬μ©λλ©° μ¬μ©μ μ 보λ₯Ό λ‘λνκΈ° μν μΈν°νμ΄μ€λ‘
UserDetails
λ₯Ό λ°ννλ νλμ λ©μλλ₯Ό κ°κ³ μλ€.
Last updated