【问题标题】:For validating session attribute, which is better in spring - Interceptor or Spring AOP?对于验证会话属性,在 Spring 中哪个更好 - Interceptor 或 Spring AOP?
【发布时间】:2013-12-09 20:03:39
【问题描述】:

在我的应用程序中,用户登录后,每次他发送请求(get/post)时,在调用控制器中的方法之前,我想验证请求中设置的会话属性(我设置了会话属性在他登录期间)。我看到这可以通过spring拦截器(OR)spring AOP实现。我应该使用哪一个?我有一种感觉拦截器已经过时了。 或者在 spring security 中有什么方法可以为我做到这一点

【问题讨论】:

    标签: spring interceptor spring-aop


    【解决方案1】:

    所以你希望这个拦截只发生在所有控制器方法上..?控制器是否具有调用它的基本 URL (post/get/delete)...?是否更像是您想拦截特定 URL 的 http 请求 ..?喜欢这个

    <intercept-url pattern="/styles/**" filters=" .." />
    

    如果您的用例归结为特定的 URL 模式,那么您可以编写一个扩展 GenericFilterBean 的自定义过滤器,您可以将其插入到过滤器属性中。因此,每个匹配 url 模式的请求都会调用它,并且在您的自定义过滤器,您可以做任何您想做的事情。

    【讨论】:

    • 我想为我的拦截器排除一些 url,这些 url 在 3.2.5 之前的 spring 版本中不可用,我使用 spring 3.0.5。所以我不喜欢这种方式,因为我必须列出所有的 url 模式。
    【解决方案2】:

    如果您尝试实现一个简单的过滤器会怎样?你可以扩展已经存在的Spring filter,或者通过实现javax.servlet.Filter创建你自己的

    【讨论】:

      【解决方案3】:

      对我来说,弹簧安全方式似乎是访问特定角色的最佳方式,也可以分配。 http://www.mkyong.com/spring-security/spring-security-form-login-using-database/中给出的非常好的例子

      【讨论】:

        猜你喜欢
        • 2014-05-16
        • 1970-01-01
        • 1970-01-01
        • 2017-12-18
        • 2017-07-08
        • 2012-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多