Spring Security - 如果外部auth失败/不存在,则有条件地使用表单登录

时间:2012-10-18 14:51:22

标签: spring-security pre-authentication

我需要的设置是一个(启用spring-security)webapp,可以预先验证(使用pubcookie)或启用“dev”模式,这样我就可以忽略pubcookie并显示登录表单。当然,开发模式将在生产中关闭,应用程序将位于运行mod_pubcookie的Apache后面,但对于dev / QA,我并不需要外部身份验证机制。

只有当(1)没有REMOTE_USER请求标头(意味着我们没有通过pubcookie)时,才会出现登录表单; AND(2)在属性文件中打开dev-mode。

我的问题:这可以在spring security XML文件中配置,还是需要将其纳入代码? (我该怎么做?)

谢谢,

d

2 个答案:

答案 0 :(得分:2)

您可以编写自己的自定义过滤器,并在安全上下文中指定它。由于它是您的自定义过滤器,您可以从属性文件中获取请求对象和配置。

如果您发现了REMOTE_USER和dev-mode,则在安全上下文持有者中设置身份验证。

用于实施自定义过滤器,请参阅link

答案 1 :(得分:0)

好的,我所做的就是使用Spring Profiles为“dev”和“prod”创建两个单独的配置文件,其中我使用了不同的http和authentication-manager元素。

来自springsource的这篇博客文章帮助很多:

http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/

请注意他说你可以在调度程序servlet的init-param元素中声明一个配置文件 - 这对我不起作用,所以我使用web.xml中的全局context-param来声明我的配置文件: / p>

<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</context-param>

d