2012-07-13 28 views
4

基於用戶角色/權限使用GWT和Spring Security創建條件用戶界面的最佳做法是什麼?有GWT和Spring安全性的條件UI?

我知道你不能依賴客戶端安全。我將在服務器端進行安全檢查。條件用戶界面僅用於外觀。

回答

4

你將需要一個服務來獲取用戶角色從服務器(它們有)到客戶端(不)的列表。在回調的onSuccess方法中,您的代碼類似於以下內容:

if (roles.contains("role1")) { 
    GWT.runAsync(new RunAsyncCallback() { 
     public void onFailure(Throwable caught) { 
      Window.alert("Code download failed"); 
     } 

     public void onSuccess() { 
      // code here if the user has role1 
     } 
    }); 
} 
if (roles.contains("role2")) { 
    GWT.runAsync(new RunAsyncCallback() { 
     public void onFailure(Throwable caught) { 
      Window.alert("Code download failed"); 
     } 

     public void onSuccess() { 
      // code here if the user has role2 
     } 
    }); 
} 
// and so on 
+0

這是一種很好的做法嗎? – Braj 2014-06-02 21:27:31

+0

@Braj我不知道它的良好做法,但這是我做的。 – user1207177 2014-06-02 21:30:26

1

我們使用GWT.runAsync來關閉部分用戶可能不需要看到的代碼。當需要加載UI時,我們只需查看他們需要的內容,然後將其顯示給他們。

我們已經將大多數必要的業務邏輯抽象爲我們爲每個用戶下載的設置,如「showTeacherControls」和「showAdvisorControls」和「showStudentControls」。然後客戶端可以檢查這些標誌以找出顯示內容。