我正在使用spring安全性来验证用户身份。该用户由第三方进行身份验证,并且在他到达我的应用程序时已经通过身份验证。 为了实现这个,我模拟了一个Authentication对象。春季安全 - 用户名和密码是否必须用于创建身份验证
我没有任何用户名和密码,而只是有标识符。我检查这个标识符是否有效使用我的自定义代码。
我的查询如下:
我是否需要用户名和密码来创建一个认证对象。 我没有提供用户名和密码,我的应用程序工作正常。
我只是想确保我正确使用spring-security。
在认证对象中没有设置用户名和密码的影响。我在下面的AbstractUserDetailsAuthenticationProvider中看到:
//确保我们返回用户提供的原始凭证, //所以后续尝试即使使用编码密码也是成功的。
我也实现了一个自定义提供程序。
- 以上评论意味着什么?
- 我的方法正确吗?
嗨Manish,谢谢。我已经完成了上述工作,并且我的应用程序工作正常。我问道,因为我不是安全专家,所以想确认我的方法是否正确。上面的这段文字是否来自一些弹簧安全文档。 getPrinciple()也应返回用于身份验证的标识符。该标识符不是用户名,而是特定用户的唯一值。我没有使用表单登录在我的情况下,因为我最初列出的原因没有使用用户名/密码进行身份验证。 –
细节来自我实现自定义'AuthenticationProvider's和'AuthenticationFilter's的体验。是的,您应该使用身份验证标识符作为委托人,只要每个用户或每个会话都是唯一的。这样你的认证令牌就不会搞砸了。请注意,如果您使用每会话标识符,并发会话控制和记住我等功能将无法即用即用,因为它们依赖于每个用户的唯一主体。 – manish