【问题标题】:How to allow unauthorized request for the first time and then require authorization?如何允许第一次未经授权的请求,然后需要授权?
【发布时间】:2019-07-30 10:05:29
【问题描述】:

因此,我们正在实施这种特殊的授权,在登录后,用户会看到基本的仪表板。当试图到达另一个位置时,他被要求使用密码进行授权。

问题是,为了呈现基本仪表板,发送了一些请求并且需要带有 200 响应,而其余的只是返回错误消息并重定向到授权屏幕。

总而言之,我们将有 3 种端点:
- 被阻止,直到用户授权
- 允许第一次返回正确的数据,而每个连续的请求都需要授权
- 无需授权

我找不到克服第二种类型的方法。有没有办法记录每个特定端点发送的请求数?或者有什么方法可以实际允许首先未经授权的使用,然后需要授权?

【问题讨论】:

    标签: java spring request authorization endpoint


    【解决方案1】:

    一种方法是在用户第一次访问您的控制器时验证没有任何角色的用户。

    然后当他再次尝试访问时,如果用户没有角色登录,您可以将他们发送到登录过程。

    要保护这个方法可以使用下面的注释:

    @Secure("IsAuthenticated()==false || (IsAuthenticated() && hasRole("WRITE"))")
    

    要手动安全,用户应使用SecurityContextHolder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 2018-07-10
      相关资源
      最近更新 更多