JBoss / WildFly安全域跨项目共享

时间:2015-01-16 09:25:14

标签: java security jboss jboss7.x

这是问题所在:

我有一个自定义安全域,用于识别活动目录中的用户,但从文件中获取角色(将来从数据库中获取)

一切都像每个项目的魅力一样,但是会话不会在多个项目中共享,即使项目共享相同的安全域,如果用户在一个项目中进行了识别,则必须在另一个项目中再次识别。 / p>

standalone.xml中的安全域定义

            <security-domain name="custom-form-auth" cache-type="default">
                <authentication>
                    <login-module code="ro.test.login.CustomLoginModule" flag="required" module="ro.test.Process-login">
                        <module-option name="activeDirectory" value="${jboss.server.config.dir}/activeDirectory.properties"/>
                    </login-module>
                </authentication>
            </security-domain>

的JBoss-web.xml中

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
   <security-domain>custom-form-auth</security-domain>
   <disable-audit>true</disable-audit>
</jboss-web>

1 个答案:

答案 0 :(得分:1)

对于跨应用程序的共享身份验证,您必须启用单点登录功能。 Single Signon配置允许对使用不同Web上下文的公司站点进行集中登录配置。

要在JBoss7中启用SSO,您需要在Web子系统中添加sso选项(每个主机配置SSO):

   <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">  
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>  
        <virtual-server name="default-host" enable-welcome-root="true">  
            <alias name="localhost"/>  
            <alias name="example.com"/>  
            <sso reauthenticate="false"/>  
        </virtual-server>  
    </subsystem> 

请参阅:https://developer.jboss.org/wiki/JBossAS711WebSSONon-Clustered