2014-10-06 51 views
0

我正在開發中,我使用angularjs在客戶端和Java,春天在服務器端的應用程序,所有的通信都是以JSON形式。angularjs基於角色的安全選項卡

我得到的問題是關於安全性。 我有多個角色,用戶可以擁有並基於這些角色,UI上的選項卡是否可見。

如果我使用JSP,那麼很容易使用taglib解決這個問題,因爲jsp是在服務器上編譯的,並且返回的html不會有隱藏標籤的html部分,並且沒有辦法通過哪個最終用戶可以看到這些標籤或他們的URL部分。

但如何解決基於角應用這個問題,因爲任何代碼我的角度寫入文件,用戶可以通過螢火蟲等,改變它,可以看到選項卡及其網址。

例子:我有我的HTML如下:

<a href="users">Users</a> 

我想完全隱藏這個事情,如果用戶沒有所需的角色。

一種解決方案可以寫一些指導,但用戶可以編輯該指令的腳本,可以看到HTML這件事。

回答

0

你需要做兩件事情:

  • 實現的角度服務,讓您的客戶端授權(通過REST獲得)

然後,在服務器端:

  • 你需要保護所有資源(HTML,角控制器,棱角分明的服務,其餘的資源),這取決於用戶的RI亮燈。 如果客戶端的不重要(我不介意我的用戶是否可以獲得我的html),那麼您是否可以只保護其他資源? 這樣,用戶不會看到他不應該看到的選項卡,但更重要的是,他無法繞過安全性以顯示它。

通過保護HTML,我的意思是對於選項卡XX我使用ng-include =「'tabXX.html'」,並且我使用Spring Security保護這個html,就像我保護RestResources一樣。

+0

保護html是什麼意思?你的意思是爲不同的角色有不同的html頁面? – 2014-10-07 04:52:22

+0

編輯的答案,我使用spring安全來保護html管理員特定的頁面。 – yunandtidus 2014-10-07 07:41:11