我的应用程序在Glassfish 3.1上运行,使用jdbcRealm是它的身份验证和授权。我想将这个应用程序移植到JBoss 6.我可以在JBoss 6中创建一个jdbcRealm,就像在Glassfish3中映射到我的数据库中的USER表一样吗?我可以通过admin-console来完成吗?在JBoss中,我弄清楚如何创建数据库连接(仅通过创建数据源),但在Glassfish中我还使用jndi
,mail-host
,transport protocol
在Glassfish中设置JavaMail会话... ,我可以将其移植到JBoss吗?
答案 0 :(得分:1)
您的问题的答案:
我可以在JBoss中创建一个jdbcRealm吗? 6像在Glassfish3中映射到a 我的数据库中的USER表?
如果我理解正确,您可以使用数据库对用户进行身份验证吗?
您可以在JBoss中定义类似的内容。最简单的方法是将适当的安全域定义添加到conf/login-config.xml
文件中。
看起来像这样:
<application-policy name="database-domain">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="dsJndiName">java:/yourDataSource</module-option>
<module-option name="principalsQuery">select password from users where userid = ?</module-option>
<module-option name="rolesQuery">select role, 'Roles' from roles where userid = ?</module-option>
</login-module>
</authentication>
</application-policy>
您还应该创建正确的数据源并将数据库库放到lib
目录中。
我可以通过admin-console吗?
我不知道是否可以使用Web控制台进行这些更改。
在JBoss中,我弄清楚如何创建 数据库连接(只需创建 数据源),但在Glassfish我也 在Glassfish中设置JavaMail会话 与jndi,邮件主机,运输 协议...,我可以将其移植到 JBoss也是?
JBoss使用默认数据库来存储一些信息。如果您想更改,那么简单的方法是使用DefaultDS
名称定义新数据源并删除deploy/hsqldb-ds.xml
文件。
在JBoss 6中,他们更改了JMS提供程序,它也使用自己的数据库来传输一些信息,我不知道是否以及如何更改它。