Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个登录表单,不同的身份验证管理器-最新的spring安全_Spring_Spring Security - Fatal编程技术网

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

多个登录表单,不同的身份验证管理器-最新的spring安全,spring,spring-security,Spring,Spring Security,我有一个使用Spring Security保护的web应用程序,它需要两个单独的登录表单。这两个登录表单需要完全独立。我的意思是不同的登录形式,不同的url路径,也可以为每一个拥有不同的身份验证管理器 我已经浏览了整个谷歌,有一些方法可以做到这一点,但我已经阅读并看到了过去几周的一些变化,这些变化应该可以在最新的代码快照版本中轻松做到这一点 首先,由于这个bug已经完成,我们现在可以有多个名称空间元素来支持多个过滤器链配置 其次,正如另一个bug所示,我们现在可以为每个http标记选择一个自定义

我有一个使用Spring Security保护的web应用程序,它需要两个单独的登录表单。这两个登录表单需要完全独立。我的意思是不同的登录形式,不同的url路径,也可以为每一个拥有不同的身份验证管理器

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

首先,由于这个bug已经完成,我们现在可以有多个名称空间元素来支持多个过滤器链配置

其次,正如另一个bug所示,我们现在可以为每个http标记选择一个自定义身份验证管理器

问题是,我已经下载、编译了所有内容,但我的xsd不允许我为每个http标记创建自定义身份验证管理器,每当我尝试更改登录处理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>

我使用的是SpringSecurity3.1的最新快照

正如我所说的,理想的情况是能够使用最近针对这些bug而改变的“新”方式,拥有两个完全独立的不同登录表单

有人用过这个或者有什么想法吗


提前感谢。

您可以在2011年10月30日的中看到,可以在http和全局方法安全性中添加
身份验证管理器ref
属性。

Ritesh,您是对的,但是,如果我尝试在http元素中配置身份验证管理器ref,出现以下异常:org.xml.sax.SAXParseException:cvc复杂类型。3.2.2:元素“security:http”中不允许出现属性“authentication manager ref”

在我的security.xml的标题中,我使用了。如果我浏览到此URL,加载的xsd将属性authentication manager ref声明为http元素,但spring-security-config-3.1.0.RC2.jar中的xsd没有声明

我在springsource jira->中创建了一个问题

我用一个正确的xsd替换了spring-security-config-3.1.0.RC3.jar中包含的xsd,并且org.xml.sax.SAXParseException不再发生,但无法在security.xml中声明两个身份验证管理器bean