2014-11-03 100 views
0

我正在WS Liberty下實現基於角色的授權服務。 有兩個主要目標:基於角色的應用服務器訪問控制1

  • ,如果沒有正確的用戶組的用戶試圖打開一個受限制的網址,顯示錯誤頁面
  • 用戶應該看到一個菜單,列出所有可用的頁面爲他

我的問題是:是否有最佳實踐來實現這種行爲?我應該在server.xml中創建第一部分,並在適當的視圖中創建第二部分? (這種方式「邏輯」將存儲在代碼的兩個不同部分,例如如果我必須添加一個新的URL,我必須將它插入到兩個不同的地方)

那麼有沒有辦法將這個角色URL映射存儲在一個地方?

感謝, krisy

回答

0

在你的應用程序可以保護鏈接檢查角色(僞代碼,一些框架已經爲它定製標籤):

if(request.isUserInRole("roleX")) { 
    // render menu item for roleX 
} 

默認情況下,如果用戶已經登錄並嘗試訪問限制他的頁面,他將收到403 Not authorized,您可以通過web.xml配置爲該代碼提供錯誤頁面。

server.xml via Application binding元素中,您只提供從應用程序角色到註冊表中定義的組的映射。根據註冊表類型的不同,您將能夠向給定組添加/刪除用戶,例如通過server.xml或LDAP管理工具對LDAP註冊表進行授權或拒絕。

+0

是的,這是保護代碼的程序化方式(相反的方式是定義程序角色)。這隻能解決第一個目標,但不能同時解決這兩個問題。我正在尋找解決這兩個問題的解決方案。 – krisy 2014-11-03 20:50:42

+0

@krisy你是什麼意思的程序角色?我忘了提到你還需要在web.xml中定義安全約束來保護你的資源。您使用編程安全性僅隱藏不應顯示的界面部分。 – Gas 2014-11-03 21:39:09

相關問題