多个登录表单,不同的身份验证管理器 - 最新的弹簧安

Agu*_*pez 11 spring spring-security

我有一个使用Spring Security保护的Web应用程序,需要两个单独的登录表单.这两种登录表单需要完全独立.我的意思是不同的登录表单,不同的URL路径,每个人也可以拥有不同的身份验证管理器.

我已经浏览了整个谷歌并且有一些方法可以做到这一点,但我已阅读并看到过去几周的一些更改应该可以在代码的最新快照版本中轻松完成此操作.

首先,由于这个错误是完整的SEC-1171,我们现在可以有多个名称空间元素来支持多个过滤器链配置.

其次,正如其他错误显示SEC-1847,我们现在能够为每个http标签选择自定义身份验证管理器.

问题是我已下载,编译了所有内容,但我的xsd不允许我为每个http标签创建自定义auth管理器,每当我尝试更改登录处理URL或每次尝试使用记住每个登录表单的密钥.

我开始做这样的事情:

<!-- Configure realm for administration users -->
<http pattern="/admin/**" auto-config="true" disable-url-rewriting="true" >
    <intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
    <form-login login-page="/adminLogin.htm" default-target-url="/" 
                login-processing-url="/loginProcessing" 
                authentication-failure-url="/adminLogin.htm?error" />
    <logout invalidate-session="true" logout-success-url="/" logout-url="/logout" />
<remember-me key="******" user-service-ref="userDetailsService" />
</http>

<!-- Configure realm for standard users -->
<http auto-config="true" disable-url-rewriting="true">
    <intercept-url pattern="/user/**" access="ROLE_USER" />
    <form-login login-page="/login.htm" default-target-url="/" 
                login-processing-url="/loginProcessing" 
                authentication-failure-url="/login.htm?error" />
    <logout invalidate-session="true" logout-success-url="/" logout-url="/logout" />
<remember-me key="******" user-service-ref="userDetailsService" />
</http>

<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userDetailsService"  >
    <password-encoder ref="passwordEncoder"/>
</authentication-provider>

<authentication-provider>
    <password-encoder ref="passwordEncoder"/>
    <user-service>
                <user name="ned" password="****" authorities="ROLE_USER" />
            <user name="tom" password="****" authorities="ROLE_ADMIN"/>
    </user-service>
</authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring Security 3.1的最新快照.

正如我所说,理想的是能够使用最近在这些错误上更改的"新"方式使两个不同的登录表单完全独立.

任何人都有这个或有任何想法吗?

提前致谢.

Rit*_*esh 5

As you can see in commit log of October 30th'11 (2f67bb3) for SEC-1847, the authentication-manager-ref attribute can be added in http and global-method-security.