2014-02-11 73 views
0

爲特定Java EE Web應用程序提供角色管理系統的最簡潔方法是什麼?Java EE:在Web應用程序中實現角色管理

我聽到的所有角色管理方法都用於保護glassfish容器本身。 我想要的是應用程序中的角色管理,即創建/刪除角色並添加特定的允許操作,例如:'顯示類型X的記錄','從類型Y移除記錄'等。我必須能夠在Web應用程序中管理它們,而不是在應用程序服務器中管理它們。

有沒有現有的解決方案?

回答

0

使用管理控制檯在Glassfish中創建安全領域。一旦你的安全領域打開你的web.xml並配置你的登錄資料和一組安全約束,指定一個可以訪問特定路徑的角色列表(在這種情況下,受保護的文件夾)。所以SO標記在下面很奇怪。

<security-constraint> 
     <display-name>Area protetta</display-name> 
     <web-resource-collection> 
      <web-resource-name>Area Protetta</web-resource-name> 
      <description/> 
      <url-pattern>/faces/protected/*</url-pattern> 
      <url-pattern>/faces/faces/*</url-pattern> 
      <url-pattern>/protected/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <description/> 
      <role-name>admin</role-name> 
      <role-name>broker</role-name> 
     </auth-constraint> 
    </security-constraint> 

您可以有多個約束,每個約束有N個可能重疊的角色。一旦設置完成,您可以創建一部分Web應用程序來更改用戶角色。當您更新用戶角色時,他/她的權限會相應更新。

通過這種方式,您可以在應用程序中處理該組,但您將安全檢查委託給Glassfish。如果這是你第一次這樣做,那可能是一個容易出錯的過程。隨意更新您的文章與您的進展,我會幫助。

+0

hmmmm。我不想處理對特定資源(文件)的訪問,但只能處理特定的功能。例如,在Web視圖中,如果不允許用戶這樣做,我想隱藏特定的按鈕(例如「創建實體」)。在服務器端,必須再次檢查。我的要求:用戶具有角色,角色=訪問權限集合。用戶和角色應該可以在Web應用程序中管理。 –

+0

這是可行的,但它取決於您用於視圖的技術。你在使用JSF嗎? – elbuild

+0

當然,我使用JSF和CDI –

相關問題