【问题标题】:Code-based Spring Security Configuration基于代码的 Spring Security 配置
【发布时间】:2012-02-09 13:45:34
【问题描述】:

我正在尝试将 Spring Security 框架与基于代码的配置一起使用,我正在关注 this 教程。

我的过滤器初始化程序中有以下代码:

FilterRegistration.Dynamic springSecurity = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
springSecurity.addMappingForUrlPatterns(null,true,"/*");

我认为这是正确的,但我不知道如何像 @Configuration 类中的 bean 一样实现 spring-security.xml。

【问题讨论】:

    标签: spring-security spring-java-config


    【解决方案1】:

    更新

    有一个项目提供了这个:"Spring Security Java Config"。它于 2013 年 12 月 16 日并入spring-security-config。

    来自README.MD:

    现在可以在 spring-security-config-3.2.0.RELEASE+ 中找到 Spring Security Java 配置,作为 Spring Security 发行版的一部分。


    原创

    目前没有简单的方法来使用 Java 配置进行 Spring Security 配置。您必须知道命名空间在幕后做了什么,这使得它变得困难且容易出错。因此,我建议坚持使用 Spring Security 命名空间配置。

    如果你真的想做java配置,你可以手动定义所有的bean。为此,您需要了解命名空间配置。首先要看的地方是 Luke 博客文章Behind the Spring Security namespace。如果你卡住了我会参考HttpSecurityBeanDefinitionParser的源代码

    最后,如果您想处于极端(不受支持)的前沿,您可以考虑 Spring Security Scala 配置项目。请注意,这个项目是一个支线项目,尚未正式发布(我也不知道目前有任何正式发布的计划)。您可以在 Spring Security Configuration with Scala 博客文章中阅读有关它的详细信息。这也详细说明了为什么没有针对 Spring Security 的 Java 配置。您可能还会发现 Getting Started with Spring Security 3.1 的最后一部分很有用,因为它演示了 Spring Security scala 配置的使用。

    【讨论】:

    • 谢谢。 Spring Security 命名空间背后的教程帮助我理解使用基于代码的 Spring Security 配置是不可行的。很多bean都是框架创建的,用起来没用。
    【解决方案2】:

    我最近挠了自己的痒;能够以编程方式实例化安全过滤器。所以我把我称之为“夏季安全”的东西放在一起。它是 Spring Security 的基本替代品。如果您只需要会话、表单登录/注销和 http 基本身份验证,它可以为您解决问题。

    https://github.com/hencjo/summer-security

    它在 Maven 中心。

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 2021-02-15
      • 2014-10-29
      • 2011-10-08
      • 2014-01-29
      • 2014-12-07
      • 1970-01-01
      • 2014-02-16
      • 2015-03-29
      相关资源
      最近更新 更多