【问题标题】:Performing custom authorization in Spring annotated controller在 Spring 注释控制器中执行自定义授权
【发布时间】:2013-01-30 13:49:11
【问题描述】:

我开始使用 Spring 注释控制器构建 REST API。

我的问题很简单:如何在一个共同的地方而不是 API 中执行身份验证/授权?

作为一名专业的 C# 开发人员,我通常为我的控制器创建一个自定义 FilterAttribute 以实现任何所需的身份验证代码。

我不会使用@Secured 属性,因为我处理基于自定义 HTTP 标头的自定义 REST 授权。我知道@Secured 可以与预定义的角色一起使用,或者我可能不太了解它的用法。

Spring 是否提供注释以对在 HttpRequest 上工作的控制器进行早期过滤?

【问题讨论】:

    标签: spring security rest spring-mvc authorization


    【解决方案1】:

    在 Web 容器级别有一个基于过滤器的身份验证和授权插件,由 Spring Security 提供。但是,您也可以将安全注释应用于控制器。 . .在幕后,这使用面向方面的编程来模块化安全问题。看看 Spring Security 和 AOP。

    一旦您对 AOP 方面有所了解,您就可以随心所欲地自定义授权 - 基于角色、一天中的时间等等 - 这可以通过自定义注释来驱动。

    【讨论】:

    • 你能告诉我更具体的函数子集在哪里看(即文档、教程)吗?我当然想将安全注释应用于控制器,但到目前为止我还没有找到任何允许我定义我的自定义授权处理程序的东西。无论它返回什么(真/假、异常等),我都需要解析 HttpRequest
    • 问题是它实际上是一个相当大的话题,我不知道首先指向你哪里。 .如果你有时间,那么 Spring in Action 是一本很棒的书。 (您可以浏览您已经熟悉的主题的章节 - 例如 DI,专注于 AOP)。 .这里有一个关于自定义注解的教程:blog.novoj.net/2012/03/27/…
    • 非常感谢。我也在考虑以下方法:拦截器:) technicalkeeda.com/spring-tutorial/spring-mvc/…
    • AOP 本质上是一种拦截器模式,因此您在 MVC 中对自定义拦截点所做的任何事情都可以通过 AOP 完成。 .功能强大,但学习曲线更陡峭,如果您只需要完成它。 . .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2012-11-25
    • 2019-04-06
    相关资源
    最近更新 更多