如何将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>
还需要做些什么?
答案 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);