CredentialsContainer
CredentialsContainer 接口表明实现该接口的对象包含敏感数据,Spring Security 在内部使用该接口,以便在成功认证后清除认证凭据。Spring Security 内部的大多数领域类都实现了此接口,例如 User 和 UsernamePasswordAuthenticationToken。
ProviderManager 管理器会检查返回的 Authentication 对象是否实现了此接口。如果实现了,它将调用 eraseCredentials 方法 来从该对象中移除凭证信息。
若希望自定义认证对象在认证后清除其凭据,应确保相关类实现 CredentialsContainer 接口。
编写自定义 AuthenticationProvider 实现的用户应在其中创建并返回一个适当的 Authentication 对象(不包含任何敏感数据),而不是使用此接口。