我可以将Glassfish jdbcRealm移植到JBoss吗?

时间:2011-03-29 20:12:17

标签: jboss glassfish jdbcrealm

我的应用程序在Glassfish 3.1上运行,使用jdbcRealm是它的身份验证和授权。我想将这个应用程序移植到JBoss 6.我可以在JBoss 6中创建一个jdbcRealm,就像在Glassfish3中映射到我的数据库中的USER表一样吗?我可以通过admin-console来完成吗?在JBoss中,我弄清楚如何创建数据库连接(仅通过创建数据源),但在Glassfish中我还使用jndimail-hosttransport protocol在Glassfish中设置JavaMail会话... ,我可以将其移植到JBoss吗?

1 个答案:

答案 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提供程序,它也使用自己的数据库来传输一些信息,我不知道是否以及如何更改它。