[Spring Security] formLogin
π formLogin λ©μλλ?
formLogin λ©μλλ λ‘κ·ΈμΈ νΌμ ν΅ν μΈμ¦μ μ½κ² ꡬνν  μ μλλ‘ νλ κΈ°λ₯μ΄λ€.
π formLogin API
loginPage
loginPage λ Spring Securityκ° κΈ°λ³Έμ μΌλ‘ μ κ³΅νλ λ‘κ·ΈμΈ νΌ λμ  κ°λ°μκ° λ§λ  컀μ€ν
 λ‘κ·ΈμΈ νΌμ μ¬μ©νλ €κ³  ν  λ μ¬μ©νλ€.
loginProcessingUrl
loginProcessingUrl λ©μλμλ μΈμ¦ μ μ°¨λ₯Ό κ°λ‘μ±μ μνν  μλν¬μΈνΈλ₯Ό μμ±νλ€. ν΄λΉ URLλ‘ μ격 μ¦λͺ
μ΄ λ€μ΄μ€λ©΄ UsernamePasswordAuthenticationFilter κ° μ΄λ₯Ό κ°λ‘μ±μ AuthenticationManager μκ² μ λ¬νλ€. μ΄ν UserDetailService ꡬν체λ₯Ό μ°Ύμ loadUserByUsername λ©μλλ₯Ό νΈμΆνκ³ , 리ν΄λ UserDetails κ°μ²΄μ λΉλ°λ²νΈλ₯Ό λΉκ΅νμ¬ μΌμΉνλμ§ κ²μ¦νλ€. μΈμ¦μ μ±κ³΅νλ©΄ μ¬μ©μ μ λ³΄μ κΆνμ λ΄μ Authentication κ°μ²΄λ₯Ό μμ±ν  ν SecurityContext μ μ μ₯νλ€.
defaultSuccessUrl
defaultSuccessUrl μ λ‘κ·ΈμΈμ μ±κ³΅νμ λ μ΄λν  κΈ°λ³Έ URLμ μ§μ νλ λ©μλμ΄λ€. λ€λ§ λ‘κ·ΈμΈμ΄ μ±κ³΅νμ λ νμ defaultSuccessUrl μ λͺ
μλ URLλ‘ μ΄λνλ κ²μ΄ μλλ€.
μ¬μ©μκ° λ‘κ·ΈμΈμ μλν  λ, μλ κ°λ €κ³  ν URLμ μΈμ
μ RequestCache μ SavedRequest κ°μ²΄λ‘ μ μ₯νλλ°, λ§μ½ SavedRequest κ° μλ€λ©΄ defaultSuccessUrl μ λͺ
μλ URLλ‘ μ΄λνλ κ²μ΄λ€.
λ§μ½ SavedRequest μ μ‘΄μ¬ μ¬λΆλ₯Ό νμΈνμ§ μκ³  무쑰건 defaultSuccessUrl μ URLλ‘ λ¦¬λλ μ
νκ³  μΆλ€λ©΄ λ λ²μ§Έ νλΌλ―Έν°μΈ alwaysUse μ κ°μ true λ‘ μ€μ νλ©΄ λλ€.
λ€λ§ defaultSuccessUrl μ€μ μ νμ ν  successHandler κ° μ€μ λμλ€λ©΄ μμ ν 무μλλ€.
failureUrl
failureUrl μ λ‘κ·ΈμΈ μλκ° μ€ν¨νμ λ μ΄λ URLλ‘ λ¦¬λλ μ
ν μ§ μ§μ νλ λ©μλμ΄λ€.
failureUrl λν failureHandler κ° μ€μ λμλ€λ©΄ μμ ν 무μλλ€.
usernameParameter
usernameParameter λ©μλλ μ¬μ©μ μμ΄λλ₯Ό μ΄λ€ HTTP νλΌλ―Έν°λ‘ λ°μμ§ μλ €μ€λ€. μ΄ μ€μ μ λ°λΌ μΆμΆλ κ°μ΄ loadUserByUsername λ©μλμ username νλΌλ―Έν°λ‘ μ λ¬λλ€.
passwordParameter
passwordParameter λν λΉλ°λ²νΈλ₯Ό μ΄λ€ νλΌλ―Έν°λ‘ λ°μμ§ μλ €μ£Όλ λ©μλμ΄λ€. μΆμΆλ κ°μ UserDetails μ μ μ₯λ λΉλ°λ²νΈ ν΄μ κ°κ³Ό λΉκ΅νμ¬ μΈμ¦νλ€.
failureHandler
failureUrl λ©μλκ° λ¨μν URLμ 리λλ μ
νλ κ²μ λΉν΄ failureHandler λ λ λ€μν λμμ μνν  μ μλ€. AuthenticationFailureHandler μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ SimpleUrlAuthenticationFailureHandler λ₯Ό μμνμ¬ ν΄λμ€λ₯Ό λ§λ€κ³  μΈμλ‘ λ겨μ€λ€.
1
2
3
4
5
6
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
		AuthenticationException exception) throws IOException, ServletException {
	
	// ...
}
λ³΄ν΅ onAuthenticationFailure λ©μλλ₯Ό ꡬννμ¬ μ¬μ©νλλ°, HttpServletRequest μμ μμ²μ λν μ λ³΄λ₯Ό κ°μ Έμ¬ μ μκ³ , HttpServletResponse μμ 리λλ μ
κ°μ μλ΅μ μ μ΄ν  μ μλ€. exception μ ν΅ν΄ μμΈ νμ
μ νμΈνμ¬ λΆκΈ° μ²λ¦¬λ₯Ό ν  μ μλ€.
successHandler
successHandler λν defaultSuccessUrl λ³΄λ€ μ κ΅ν μμ
μ μννλ€. AuthenticationSuccessHandler μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ SimpleAuthenticationSuccessHandler λ₯Ό μμλ°μ ν΄λμ€λ₯Ό ꡬννλ€.