2011-06-09 72 views
2

我想知道使用jaas在數據庫表上驗證應用程序用戶的最簡單方法。
由於使用用戶名/散列密碼的數據庫表可能是最常見的解決方案,是否有一個「提供」LoginModule這種類型的認證?jaas,在數據庫表上驗證應用程序用戶

+0

對此的支持因容器而異。您可能想要添加關於您正在使用的應用程序服務器的信息。 – 2011-06-09 10:25:17

+0

爲什麼它從容器到容器有所不同? (我添加了「應用程序」用戶這個詞)。但是我將使用Glassfish或tomcat 6. – AgostinoX 2011-06-09 10:32:34

+0

因爲JAAS模塊是由應用程序服務器開發人員或程序員編寫的。在Java EE標準中沒有規定登錄模塊,作爲符合任何規範的先決條件。 Tomcat,Glassfish,JBoss和WebLogic(以及可能的WebSphere)支持各種形式的面向數據庫的登錄模塊。如果您需要任何具體信息,您必須在問題中說明。 – 2011-06-09 10:38:38

回答

3

Tomcat 6中的JDBCRealm支持即裝即用。這對大多數需求來說可能已經足夠請注意,Tomcat還提供DataSourceRealm以允許通過基於JNDI的JDBC數據源進行身份驗證;這更適合需要專用連接池訪問認證數據源的應用程序。請注意,領域實施支持使用digested/hashed passwords;但不是默認情況下。這需要通過每個領域的摘要屬性進行額外的配置。

Glassfish還支持使用JDBC域進行主體驗證。有關創建領域的詳細信息,請參見Glassfish Administration Guide。該指南可能會提供有關管理領域的允許值的可憐文檔 - 您將在a blog post中找到這些文檔。

如果您正在尋找管理領域中的底層用戶的方法,那麼大多數/所有容器都不提供相同的管理工具。你必須自己寫這些工具。此外,如果您希望支持這些Realm實現不支持的摘要算法,或者讓實現以不同方式工作(如向密碼添加鹽或基於策略鎖定用戶),那麼您將需要推出自己的實施。

現在,如果您希望在您的應用程序中使用它們,通常通過在應用程序的相應部署描述符中指定領域來完成此操作。假設這是一個Web應用程序,您可以在web.xml file中指定使用的領域(用於表單,基本和摘要式身份驗證方案)。

相關問題