2012-02-25 33 views
4

我正在開發一個使用Glassfish 3.1.1作爲我的應用程序服務器的Java EE 6應用程序。我正在使用聲明性和程序化安全性。我在我的部署描述符中定義了幾個角色,並定義了所有安全約束。自定義isUserInRole與RDBMS的實現

我正在使用JDBCReal,現在我已將其更改爲LDAPRealm。所以我想在不依賴LDAP組的情況下管理用戶組映射。換句話說,我想對LDAP進行身份驗證,但授權使用RDBM,詢問當前用戶是否屬於X組。

我認爲會有一種方法來「覆蓋」isUserInRole方法。雖然搜索我聽說過像JACC這樣的東西,但我發現有一些方法可以將自定義的JACC提供程序或類似的東西插入到應用程序服務器中,但我找不到任何定製的JACC實現,我也不知道如何做到這一點(或事件,如果它會工作..)

回答

0

根據Working with Realms, Users, Groups, and Roles,領域是一個「完整的數據庫的用戶和組,識別Web應用程序的有效用戶」。領域定義了一組憑證和角色。

然後Glassfish還登錄了定義用戶如何被認證的模塊,例如,用戶名/密碼,證書等。實際上,只支持用戶名/密碼。

因此,根據我的理解,您將需要實現混合LDAP/JDBC領域。這裏是sample code的自定義登錄模塊和領域。你可以看到我的這個類似的answer

+0

對於混合LDAP/JDBC領域;您提供的鏈接已死亡。這是一個:http://docs.oracle.com/cd/E19609-01/819-2556/beabs/index.html – 2014-09-01 16:11:53