java - 在 Spring 中调用 Controller 方法之前基于 Cookie 的授权

标签 java spring cookies

最近我遇到了这个问题。假设我想为 Controller 中的不同方法授予不同的授权。我想使用随请求发送的 cookie 来执行此操作,并且为此我想使用注释。我试图弄清楚如何强制 @PreAuthorize 注释起作用,但我在这里遗漏了一些东西。

有谁知道这是否是可能的情况(伪代码)

@Controller
class myController
{
    @SomeAuthorizationAnnotation
    @RequestMapping("/")
    void doSth()
    {
        //something is done after authorization
    }
} 

现在我想编写我的自定义方法,该方法允许我访问发送到此 Controller 的http请求,我可以在其中编写类似的内容

HttpServletRequest ht = ....

Optional<Cookie> cookie = getCookie(ht.getCookies(), AUTH_TOKEN);
if (cookie.isPresent()) {
    //grant authorization for the method call
}

我希望这是可以理解的。

P.S 我不想将过滤器或某物绑定(bind)到 url,我想将其绑定(bind)到方法。

最佳答案

为了保护您的方法,您可以使用 @Secured 或 @PreAuthorize 注释,但您也应该声明它 <global-method-security secured-annotations="enabled" /> 另请参阅method security

关于java - 在 Spring 中调用 Controller 方法之前基于 Cookie 的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661468/

相关文章:

java - 作为递归方法参数的变量是如何处理的?

java - Spring 和 MongoDB 异步 Java 驱动程序 - clusterListener 不能为 null

javascript - chrome 扩展 - 无法获取非安全 cookie

java - 在 Scala 中使用 RxJava 和平面 map

java - 为什么过滤查询没有 JSON 输出?

java - 春假服务

java - spring ehcache 没有这样的方法报错

java - spring 写回属性文件

ios - 使用AFNetworking,每次启动应用后,PHPSESSID都会更改

xcode - ipad 应用程序。 UIWebView 记住登录信息