2012-07-28 51 views
0

我想問一下,是否可以從EJB攔截器中更改Java EE JAAS上下文(分配的用戶角色)?如何從攔截器中更改JAAS上下文?

我有正在使用的方法「的isUserInRole()」來測試授權幾個EJB會話bean。另一方面,我的應用程序使用一些特殊信息來管理用戶配置文件,這些特殊信息無法映射到通過應用程序Java EE領域管理的JAAS角色/組,因爲它們是在運行時創建的。

我的想法是實現類似的EJB攔截,檢查存儲在用戶的個人資料信息我形成應用程序,並添加一些新的自定義角色的用戶憑據/主題。

那麼結果將是分配給能夠通過我的會話bean被要求憑據一個新的動態角色定義。但是這些角色不會在ejb(@RolesAllowd)或ejb-jar.xml或sun-ejb-jar.xml描述符中進行硬編碼。

感謝您對此問題的任何幫助。

回答

0

改變已經建立的安全上下文是很難的,但如果初始設置安全上下文也適用於你的情況,你必須看一個自定義登錄模塊。

在Java EE,這可以通過該JASPI API,它建立在JAAS來完成。

幾乎每個應用服務器也有一個專有的API來做到這一點,他們大多建立在JAAS爲好。