JBOSS login-config.xml和* -ds.xml(映射数据源)

时间:2013-04-10 03:55:30

标签: java jboss jboss5.x login-config.xml

如何将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>

login-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>

还需要做些什么?

3 个答案:

答案 0 :(得分: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>  

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

答案 1 :(得分:0)

我试图找出一些东西,但似乎你无法对默认登录模块做任何事情。

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

答案 2 :(得分:0)

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

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