【问题标题】:JDBCRealm with JPA带有 JPA 的 JDBCRealm
【发布时间】:2012-05-15 20:50:28
【问题描述】:

Java EE6 新手,我正在尝试设置 JDBCRealm。许多示例建议在 SQL 中手动制作保存用户/组信息的表。

有没有更标准的“JPA”方法呢? Glassfish 期望的表格不适合您最终使用的表格结构,例如一个 OneToMany 映射(这是我希望我可以使用的)。

我读到 Glassfish 仍然使用 JDBC 来完成 JDBCRealm,这将解释原因。我偶然发现了这个博客,它提出了一种使用 JPA 的方法。

http://www.codeproject.com/Articles/238779/J2EE-JDBC-based-authentication-with-JPA-Entities-i

但是有没有一种“官方”的方式来使用 JPA 呢?我想确保我遵循最佳实践,以确保我有一个安全的应用程序。

谢谢

【问题讨论】:

  • 无论您的最终解决方案是什么,您都应该在生产系统中避免使用 JDBCRealm。如果自 Apache Tomcat 派生以来它没有改变,那么它仍然是单线程的,因此所有凭据检查等都将被序列化。至少使用 DataSourceRealm 并允许 Glassfish 使用连接池。
  • 谢谢克里斯托弗。如果这是当前进行身份验证的最佳方式,那么我会接受您的建议。没听说过DataSourceRealm。有点重新学习 Java,所以想确保我以正确的方式做所有事情(尽可能保持最新)。
  • 我在 JBoss 网站上看到了 DataSourceRealm,但在 Glassfish 上却没有看到太多关于它的内容。这是基于 JDBC 的身份验证的最佳前进方式吗?
  • 我现在正在考虑使用 FlexibleJDBCRealm。有人用过吗? flexiblejdbcrealm.wamblee.org/site
  • 我在添加赏金后让 FlexibleJDBCRealm 工作。总是发生..!我只是没有在正确的服务器配置中创建领域。我在“服务器配置”而不是“默认配置”中创建了它。它需要在“默认配置”中。网站上的说明是正确的。这比 JDBCRealm 好得多,因为我的表是由 JPA 生成的,因此与 JDBCRealm 所需的结构不匹配。

标签: java glassfish jpa-2.0


【解决方案1】:

几个月前,我想用 glassfish 创建我的 JDBC 领域,但我也有很多疑问。我将尝试或多或少地向您解释我是如何使用 JPA 做到的。

许多示例建议制作包含用户/组的表 在 SQL 中手动获取信息

我不同意,如果您将 JPA 用于与持久性相关的其他任务,为什么在涉及安全性时会例外。所以 JPA 是个好主意。在您的数据库控制台中复制/粘贴一段 SQL 很容易,但如果您拥有在部署应用程序时自动为您创建这些表的实体,则会更好。

您所遵循的教程很好,我认为没有最佳实践。

我会给你一些我认为可以帮助你创建 JDBC 领域的资源。 也许你对一些更简单的东西感兴趣,只是为了热身,在这种情况下,看看这篇文章:

http://javing.blogspot.in/2012/05/here-in-this-video-you-can-see-how-i.html

它谈到了 glassfish 中基于角色的安全性,我认为它可以给你一些提示。

如果你想知道如何使用 JPA 创建 JDBC 领域,请按照我之前提出的这个问题,最后你会找到解决方案:

Glassfish 3 security - Form based authentication using a JDBC Realm

如果您粘贴一些代码,我们可以帮助您在遇到困难时大喊大叫。

【讨论】:

  • 嗨 sfrj,谢谢。第二个链接提供了很多非常有用的信息,我可能会参考它很多!就我而言,我已经让 FlexibleJDBCRealm 工作了,而且看起来非常好。邮件列表非常安静,所以我不确定它有多少用处,但到目前为止,我认为这是一个写得很好的领域。我是新手,所以你的帖子对我来说真的很有用。非常感谢!
猜你喜欢
  • 2015-10-02
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2014-09-30
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多