2012-05-15 38 views
6

新的Java EE6和我試圖建立一個JDBCRealm。許多示例都建議在SQL中手動保存用戶/組信息的表。JDBCRealm與JPA

有沒有一個更標準的「JPA」做法呢? Glassfish認爲,如果您使用的是桌面結構,那麼這種桌面結構將不適合您。 OneToMany映射(這是我希望我可以使用的)。

我讀了Glassfish仍然使用JDBC來完成JDBCRealm,這可以解釋爲什麼。我偶然發現了這個博客,這個博客提供了一種與JPA合作的方法。

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

但有一個 '官方' 的方式與JPA做呢?我想確保我遵循最佳做法,以確保我有一個安全的應用程序。

感謝

+0

無論您的最終解決方案如何,您都應該避免在生產系統中使用JDBCRealm。如果自從Apache Tomcat派生出來之後它沒有改變,那麼它仍然是單線程的,因此所有的憑證檢查等都將被序列化。至少使用DataSourceRealm並允許Glassfish使用連接池。 –

+0

謝謝克里斯託弗。如果這是目前最好的方式來進行認證,那麼我會跟你的建議。沒有聽說過DataSourceRealm。有點重新學習Java所以想確保我做的一切都是正確的(儘可能最新)。 – Richard

+0

我在JBoss網站上看到DataSourceRealm,但在Glassfish上沒有太多介紹。它是基於JDBC的身份驗證的最佳方式嗎? – Richard

回答

5

幾個月前,我想創造我的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

如果粘貼一些代碼,我們如果你遇到困難,可以幫助你解決問題。

+0

嗨sfrj,謝謝你。第二個鏈接提供了很多非常有用的信息,我可能會參考它!在我的情況下,我得到了FlexibleJDBCRealm的工作,它看起來非常好。郵件列表非常安靜,所以我不確定它有多大的用處,但到目前爲止,我認爲這是一個寫得很好的領域。我是新來的,所以你的文章對我來說真的很有用。非常感謝! – Richard

+0

@理查不客氣 – sfrj