【发布时间】:2014-09-20 22:59:33
【问题描述】:
我是 Spring Security 的新手。我想为两种不同类型的用户提供两种不同的登录表单。我有一个名为 /admin 的包,其中包含我的系统用户的主要项目和其他用户的 /portal。/portal 用户将在他们的租户上工作,并且对 /admin 一无所知,反之亦然。每个用户组都有自己的数据库也是。 在 spring-security.xml 中,我定义了两个身份验证管理器,但是当我从两个登录表单登录时,它会转到“AuthenticatingManager”,但正如我在 xml 文件中提到的,对于 /portal 用户,它应该转到 PortalAuthenticatingManager。我该怎么办?或者我错过了什么?
<security:http use-expressions="true" pattern="/portal/**" authentication-manager-ref="portalAuthMgr" access-denied-page="/unauthorized.jsp">
<form-login login-page="/plLogin.jsp" default-target-url="/portal/portal" />
<security:intercept-url pattern="/plLogin.jsp" access="permitAll"/>
<security:intercept-url pattern="/portal/**" access="hasRole('ROLE_PORTAL')" />
</security:http>
<security:http authentication-manager-ref="adminAuthMgr" access-denied-page="/unauthorized.jsp">
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<security:form-login login-page="/login.jsp" authentication-failure-handler-ref="authenticationFailureHandler"/>
</security:http>
<security:authentication-manager id="adminAuthMgr">
<security:authentication-provider ref="produxAuthenticationProvider"/>
</security:authentication-manager>
<security:authentication-manager alias="portalAuthMgr">
<security:authentication-provider ref="portalAuthenticationProvider"/>
</security:authentication-manager>
<beans:bean id="produxAuthenticationProvider" class="com.spring.AuthenticatingManager">
</beans:bean>
<beans:bean id="portalAuthenticationProvider" class="com.spring.PortalAuthenticatingManager">
</beans:bean>
【问题讨论】:
-
你需要重做缩进:|
标签: java authentication spring-security