Spring-Security http-basic auth以及其他身份验证类型

时间:2011-01-03 01:17:33

标签: java spring-security http-basic-authentication

我有一个非常标准的现有webapp使用spring安全性,需要数据库支持的表单登录用户特定路径(例如/ user / **),以及一些完全开放和公共路径(例如/index.html) )。

然而,由于这个webapp仍在开发中,我想在所有路径(/ **)中添加一个http-basic弹出窗口以增加一些隐私。因此,我正在尝试添加一个http-basic弹出窗口,要求查看任何路径所需的通用用户/传递组合(ex admin / foo),但仍然保持所有其他基础身份验证机制的完整性。

我无法对<http>标记做任何事情,因为这会使“禁止多管闲事的爬虫”身份验证与“用户登录”身份验证混淆,而且我没有看到任何关联方式具有不同认证机制的不同路径。

有没有办法用弹簧安全来做到这一点?或者,是否存在某种死的简单过滤器,我可以独立于spring-security的认证机制进行应用?

3 个答案:

答案 0 :(得分:1)

或者您可以查看即将推出的spring security 3.1(目前为3.1.0.M2),该版本支持multiple namespace elements

答案 1 :(得分:0)

我刚刚在Spring安全性之前使用了一个基本的过滤器,如下所述:

http://joomla.jcalfee.info/contact/2-java-authentication-filter

这可以作为一个很好的临时黑客

答案 2 :(得分:0)

是的,您可以在Spring Security中使用多个身份验证过滤器。但是,我发现的最好的方法是省略Spring Security命名空间的<http>元素,而是使用普通的Spring Bean表示法。

手动指定所有Spring Security bean'为您提供了控制截获的URL所需的灵活性,以及​​针对哪些URL模式触发的过滤器。

缺点是它需要指定许多额外的bean定义,其中许多定义当然不像命名空间变量那样可读。