Spring Security - 如果外部认证失败/不存在,则有条件地使用表单登录
问题描述:
我需要的设置是可以预先认证的(使用pubcookie)或具有“开发”模式启用,所以我可以忽略pubcookie并显示登录表单。自然,开发模式将在生产中关闭,其中应用程序将位于运行mod_pubcookie的Apache后面,但对于dev/QA,我并不需要外部认证机制。Spring Security - 如果外部认证失败/不存在,则有条件地使用表单登录
仅当(1)没有REMOTE_USER请求标头(意思是我们没有通过pubcookie)时才会出现登录表单; AND(2)在属性文件中打开dev-mode。
我的问题:这可以在春季安全XML文件中配置,还是我需要把这个代码? (怎么做呢?)
感谢,
D.
答
您可以编写自己的自定义过滤器,并指定其在安全范围内。因为它是您的自定义过滤器,所以您可以从属性文件中获取请求对象以及配置。
如果您在安全上下文持有者中发现REMOTE_USER和dev-mode,然后设置身份验证。
实现自定义过滤器是指link
答
好了,所以我所做的就是使用Spring配置文件创建“开发”和“刺”,在这里我用不同的HTTP和认证管理器元件中的两个独立的配置文件。
从SpringSource的这个博客条目帮助了很多:
http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/
只是要注意的地方,他说,你可以声明在调度servlet的init-param元素的轮廓 - 这并没有为我工作,所以我用全球的context-param在web.xml中声明我的个人资料:
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
D.
谢谢!并链接到这个伟大的博客大拇指! – deebugger
很高兴知道,帮助接受帮助他人的答案 –
我试图走这条路,但整个沙拉是自定义过滤器撞倒我。我以另一种方式 - 春季档案(我会回答自己,但也会接受你的答案) – deebugger