【问题标题】:Token Based authentication in SpringSpring中基于令牌的身份验证
【发布时间】:2013-02-11 09:22:55
【问题描述】:

我们有一个 Spring Web 应用程序,它已经使用 Spring 安全性来验证用户并授予对一组受限页面的访问权限。然而,我们还有另一组我们希望获得的资源。对于第二组,我们不需要用户身份验证,而是希望用户进入页面:/access.html 并输入访问代码(之前通过电子邮件发送给他们),然后他们将被授予访问这些资源的权限而无需登录。访问代码(令牌)仅在有限的时间段内有效,然后过期。

我可以使用 Spring Security 以某种方式与我们已有的用户身份验证设置并行实现吗?

【问题讨论】:

    标签: java spring spring-security


    【解决方案1】:

    当然,有几种方法可以做到这一点。听起来您需要做的就是创建一个过滤器,该过滤器可以在会话/请求中检查您的令牌,并创建/更新 Spring Security 上下文以获得所需的角色。然后授权正常进行。

    特别是您将添加GrantedAuthories 到您的Authentication 对象中以获取Spring Security Context。这个过程有很多细节,我承认我的答案并不完整,但完整的答案会非常广泛。

    【讨论】:

      【解决方案2】:

      我用 cookie 做过类似的事情。

      您可以实现自己的过滤器,扩展GenericFilterBean

      然后使用下面的 spring-security 设置配置

      <security:http ... >
          ....
          <sec:custom-filter position="FORM_LOGIN_FILTER" ref="cookieAuthenticationFilter" />                                         
      </security:http>  
      

      看看BasicAuthenticationFilter的源代码可能会有帮助。

      【讨论】:

        猜你喜欢
        • 2017-07-10
        • 2020-03-03
        • 2017-03-21
        • 2021-01-25
        • 2016-01-23
        • 2016-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多