憑證容器
CredentialsContainer
介面表明實現物件包含敏感資料,Spring Security 在成功認證後,會在內部使用此介面來擦除認證憑證。Spring Security 的大多數內部領域類都實現了此介面,例如 User
和 UsernamePasswordAuthenticationToken
。
ProviderManager
會檢查返回的 Authentication
是否實現了此介面。如果實現了,它會呼叫 eraseCredentials
方法 從物件中移除憑證。
如果你希望你的自定義認證物件在認證後被擦除憑證,你應該確保這些類實現了 CredentialsContainer
介面。
編寫自己的 AuthenticationProvider
實現的使用者應該在其中建立並返回一個合適的 Authentication
物件,不包含任何敏感資料,而不是使用此介面。