如何在两个域上使用spring security进行单一登录?

cac*_*kle 6 java authentication spring spring-security

我有网络应用程序和两个域 - example.com和example.ru

example.com - 国际

example.ru - 适用于当地国家

我的网络应用程序使用Spring安全性授权用户,但如果用户通过example.com登录example.ru,则不会记录.

如果用户通过example.com或example.ru登录,他将如何在两个域上登录?

PS:BTW我的网络应用程序通过OpenID和OAuth使用授权

小智 2

如前所述,您需要单点登录解决方案,Cloudseal提供了一个 Spring 安全扩展,其中包含一个 Spring 命名空间,因此您只需执行以下操作:

<security:http entry-point-ref="cloudseal">
    <security:intercept-url pattern="/protected/user.do" access="IS_AUTHENTICATED_FULLY" />
    <security:intercept-url pattern="/protected/admin.do" access="ROLE_ADMIN" />
</security:http>

<cloudseal:sso endpoint="http://cloudseal.com" entry-point-id="cloudseal" app-id="quickstart">
    <cloudseal:keystore location="WEB-INF/keystore.jks" password="nalle123">
        <cloudseal:key name="apollo" password="nalle123" />
    </cloudseal:keystore>
    <cloudseal:metadata location="WEB-INF/idp.xml" />
</cloudseal:sso>
Run Code Online (Sandbox Code Playgroud)

请参阅www.cloudseal.com/platform/spring-security-single-sign-on