0

如何将 jboss *-ds.xml(在 server/default/deploy 中)中的两个不同数据源映射到 login-config.xml(在 server/default/conf 中)中的两个单独的登录模块?

(数据源位于两个不同的 IP 地址)

到目前为止,我已经尝试了以下方法,但无济于事:

*-ds.xml

<connection-url>jdbc:mysql:loadbalance://hostip1,hostip2:port/dbname?loadBalanceBlacklistTimeout=5000</connection-url>

<security-domain>Policy1</security-domain>

登录-config.xml

<application-policy name="Policy1">
<authentication>

  <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="sufficient">
<module-option name="username">userforip1</module-option>
<module-option name="password">pwdforip1</module-option>
</login-module>

  <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="sufficient">
<module-option name="username">userforip2</module-option>
<module-option name="password">pwdforip2</module-option>
</login-module>

</authentication>
</application-policy>

还需要做什么?

4

3 回答 3

0

如果您的项目有接缝,您可以使用编程方式让实体管理器使persistenceUnitName 对于每个用户都不同,例如:

EntityManager em =(EntityManager) org.jboss.seam.Component.getInstance("persistenceUnitName" + user.getName(), true);

于 2014-08-18T14:01:34.143 回答
0

我试图弄清楚一些事情,但您似乎无法使用默认登录模块做任何事情。

我想到的唯一解决方案是创建自定义登录模块并实现所需的逻辑。

于 2013-04-20T14:32:07.487 回答
0

<local-tx-datasource>
    <jndi-name>Name1</jndi-name>
    <connection-url>jdbc:mysql://Host1:Port1/catissuecore</connection-url>
    <user-name>user1</user-name>
    <password>pwd1</password>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <check-valid-connection-sql>select 1</check-valid-connection-sql>
</local-tx-datasource>
<local-tx-datasource>
    <jndi-name>Name2</jndi-name>
    <connection-url>jdbc:mysql://Host2:Port2/catissuecore</connection-url>
    <user-name>user2</user-name>
    <password>pwd2</password>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <check-valid-connection-sql>select 1</check-valid-connection-sql>
</local-tx-datasource>  

以上是您可以用于您的目的的数据源文件。用户应具有适当的权限和访问权限。

于 2013-04-19T08:47:03.487 回答