Spring Security 的 AuthenticationException實現總結

sayWhat_sayHello發表於2019-04-30

引言

在Spring Security中,認證失敗時會丟擲 AuthenticationException異常,而 AuthenticationException 有些子類我們需要了解和記憶一下以便我們更好的使用。

需要注意的是 AuthenticationException 是執行時異常。

AuthenticationException子實現

  • UsernameNotFoundException:使用者名稱未找到。
  • BadCredentialsException:認證錯誤。可以用於密碼錯誤、驗證碼錯誤等。
  • RememberMeAuthenticationException:記住我 認證錯誤。 在登入中常常有 記住我 選項,因為這個地方導致的錯誤。
  • AccountStatusException:使用者賬戶狀態異常。例如被封號之類的。
  • NonceExpiredException:Nonce過期異常。
  • AuthenticationCredentialsNotFoundException:SecurityContext中不存在Authentication異常。
  • AuthenticationServiceException:認證服務異常。可能是後端資料庫之類的出現問題等等情況。
  • ProviderNotFoundException:Provider找不到異常。由ProviderManager丟擲。
  • SessionAuthenticationException:會話認證異常。通常是因為同一個使用者開啟了多個會話。
  • InsufficientAuthenticationException:認證資訊不足異常?可能是由於 記住我 選項引發的。

重點

最常用的應該是這兩種:
UsernameNotFoundException:使用者名稱未找到。
BadCredentialsException:認證錯誤。可以用於密碼錯誤、驗證碼錯誤等。

其他的可能用的比較少,再自定義實現AuthenticationException即可。

相關文章