0

我的应用程序在 Glassfish 3.1 上运行,使用 jdbcRealm 是它的身份验证和授权。我想将此应用程序移植到 JBoss 6。我可以在 JBoss 6 中创建一个 jdbcRealm,就像在 Glassfish3 中那样映射到我数据库中的 USER 表吗?我可以通过管理控制台来做吗?在 JBoss 中,我知道如何创建数据库连接(仅通过创建数据源),但在 Glassfish 中,我还在 Glassfish 中使用jndimail-hosttransport protocol... 设置了 JavaMail 会话,我也可以将其移植到 JBoss 吗?

4

1 回答 1

1

关于您的问题的答案:

我可以在 JBoss 6 中创建一个 jdbcRealm,就像在 Glassfish3 中那样映射到我的数据库中的 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目录。

我可以通过管理控制台来做吗?

我不知道是否可以使用 Web 控制台进行这些更改。

在 JBoss 中,我知道如何创建数据库连接(仅通过创建数据源),但在 Glassfish 中,我还使用 jndi、邮件主机、传输协议在 Glassfish 中设置 JavaMail 会话...,我可以将其移植到 JBoss 为好?

JBoss 使用默认数据库来存储一些信息。如果你想改变它,最简单的方法是用DefaultDS名称定义新的数据源并删除deploy/hsqldb-ds.xml文件。

在 JBoss 6 中,他们更改了 JMS 提供程序,它还使用自己的数据库来显示一些信息,但我不知道是否以及如何更改它。

于 2011-03-30T10:27:20.560 回答