0

我正在尝试在 JBoss7 中配置单点登录。

Standalone.xml 中的安全域:

<security-domain name="my_auth">
   <authentication>
      <login-module code="Database" flag="required">
         <module-option name="dsJndiName" value="java:/comp/env/myDS"/>
         <module-option name="principalsQuery" 
            value="select password from usertable where login_id=?"/>
         <module-option name="rolesQuery" 
            value="select user_role from usertable where login_id=?"/>
         <module-option name="hashAlgorithm" value="MD5"/>
         <module-option name="hashEncoding" value="hex"/>
       </login-module>
   </authentication>
</security-domain>

Standalone.xml 中的虚拟服务器

<virtual-server name="default-host" enable-welcome-root="true">
   <alias name="localhost"/>
   <sso/>
</virtual-server>

我的 webapp1 和 webapp2 的 jboss-web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<jboss-web>
  <security-domain>my_auth</security-domain>
</jboss-web>

配置后可以正常使用。但它有一个小问题:

启动服务器并第一次登录 webapp1 或 webapp2 时,另一个 webapp 没有登录。我从第一个 webapp 注销,然后再次登录,它工作正常。

我尝试将属性 reauthenticate="false" 添加到 ,仍然有同样的问题。

我不知道这个问题,任何人都可以有建议吗?

4

1 回答 1

0

我认为您还必须将 SSO Valve 添加到您的 jboss-web.xml 中。

以下对我有用(JBoss 7.1.1)

独立的.xml

<security-domain name="my_auth">
   <authentication>
      <login-module code="Database" flag="required">
         <module-option name="dsJndiName" value="java:/comp/env/myDS"/>
         <module-option name="principalsQuery" 
            value="select password from usertable where login_id=?"/>
         <module-option name="rolesQuery" 
            value="select user_role from usertable where login_id=?"/>
         <module-option name="hashAlgorithm" value="MD5"/>
         <module-option name="hashEncoding" value="hex"/>
       </login-module>
   </authentication>
 </security-domain>

 ...
  <virtual-server name="default-host" enable-welcome-root="false">
      ...
      <sso reauthenticate="false"/>
  </virtual-server>

jboss-web.xml:

<jboss-web>

    <security-domain flushOnSessionInvalidation="true">java:/jaas/my_auth</security-domain>
    <valve>
        <class-name>org.apache.catalina.authenticator.SingleSignOn</class-name>
    </valve>

</jboss-web>
于 2014-02-11T10:21:39.067 回答