根据Spring Security,如果身份验证由外部身份验证提供者完成,则使用身份验证提供者。认证后,Spring Security将获得封装用户信息的认证对象。
如果Spring Security框架进行身份验证,则用户信息被封装在User接口的实例中(例如作为默认实现的User细节类)。
我的问题是——为什么Spring Security框架不能使用一致的方法?为什么他们不能在所有情况下使用UserDetails而不是身份验证对象?有什么原因吗?
根据Spring留档
public interface Authentication extends Principal, Serializable
表示身份验证请求或身份验证主体在AuthenticationManager处理该请求后的令牌。验证(Authentication)方法。一旦请求经过身份验证,身份验证通常会存储在一个线程本地SecurityContext中,该线程由SecurityContextHolder通过正在使用的身份验证机制管理。通过创建身份验证实例并使用以下代码,无需使用Spring Security的身份验证机制,即可实现显式身份验证:
SecurityContextHolder.getContext().setAuthentication(anAuthentication);
有关更多详细信息,请参阅https://docs.spring.io/spring-security/site/docs/4.2.15.RELEASE/apidocs/org/springframework/security/core/Authentication.html
说明:
仅当用户使用有效凭据进行身份验证时,身份验证对象才会设置为本地安全上下文。它是一种象征。其中,就用户详细信息而言,我们无法知道用户是否经过身份验证。
您也可以将其视为单一责任原则,其中用户详细信息类的责任是管理用户详细信息,身份验证责任是处理真实性。
问题内容: 这是我的情况: 一个Web应用程序对许多应用程序执行某种SSO 登录的用户,而不是单击链接,该应用就会向正确的应用发布包含用户信息(名称,pwd [无用],角色)的帖子 我正在其中一个应用程序上实现SpringSecurity以从其功能中受益(会话中的权限,其类提供的方法等) 因此,我需要开发一个 自定义过滤器 -我猜想-能够从请求中检索用户信息,通过自定义 DetailsUserSe
我想知道socket.io身份验证的最佳实践是什么。 Alice发出事件'message',参数包括Bobs、唯一标识符等。Bob在监听Socket.on('message')事件时接收消息。
于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,
我一直在寻找使用各种AWS服务来处理我们下一个主要项目的基础设施。我们开始研究EC2实例上的docker容器,但在进一步研究AWS Lambda之后,这似乎是一条值得探索的道路。 使用AWS Lambda范例,我们只需使用Lambda函数作为逻辑粘合剂,将数据和事件(来自其他AWS服务)保存在一起。 例如,如果我们产品的用户创建了一个新记录,AWS Lambda可以在该事件中触发,我们可以调用La
问题内容: 目前,我正在使用Spring Security编写Web应用程序。我们有一个通过用户名和密码对用户进行身份验证的Web服务。 网络服务: 如何配置Spring Security将提供的用户名和密码传递给Web服务? 我写了一个仅接收用户名的。 我认为问题出在您的xml中。您是否关闭了自动配置?并且您的类是否扩展AbstractUserDetailsAuthenticationProvi
null 我的自定义rest筛选器: 上面的内容实际上会导致应用程序启动时出现一个错误:有人能告诉我如何最好地执行此操作吗?pre_auth筛选器是执行此操作的最好方法吗? 编辑 使用Spring-security实现解决方案 希望它能帮助其他人…