【发布时间】: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 所需的结构不匹配。