0

我有两个不同的登录,一个外部和一个内部。外部位于外部主页上,因此当您登录时,您将被重定向到“主”页面,而内部位于主页上。问题是当我登录外部表单时被重定向然后返回到外部页面它再次重定向我,因为我的 isAuthenticated() 是真的。那么当我在我的外部页面上时,如何将 isAuthenticated 状态设置为 false 。

我是否必须将“remember_me”设置为禁用、不同的 session-authentication-strategy 或不同的 authenticationManager。

任何想法/提示?谢谢任何帮助。

4

1 回答 1

1

我假设您有一组不同的用户。所以,是的,您将需要一个不同的身份验证管理器。为内部与外部配置一个,并在您的http配置中引用它们。您可能还需要不同的安全上下文。我们使用一种策略,使一些内部用户与外部用户保持不同。正常配置您的<http...部分之一。但另一个应该是这样的:

<bean id="internalSecurityContextRepository" 
    class="org.springframework.security.web.context.HttpSessionSecurityContextRepository">
    <property name="springSecurityContextKey" value="SPRING_SECURITY_CONTEXT.internal"/>
</bean>

然后在您的内部配置中确保您引用了新的上下文存储库:

<sec:http pattern="/internal/**"
    security-context-repository-ref="internalSecurityContextRepository"
    authentication-manager-ref="internalAuthenticationManager"
    ... other stuff ... />

通过这种配置,spring 将能够为内部和外部使用不同的身份验证管理器和不同的用户集。

于 2013-09-13T23:54:15.267 回答