angularjs基于安全角色的选项卡

时间:2014-10-06 12:40:25

标签: java angularjs spring security

我正在开发一个应用程序,其中我在客户端和java使用angularjs,在服务器端弹出,所有通信都是以JSON的形式。

我得到的问题是安全问题。 我有多个角色,用户可以拥有并基于这些角色,UI上的选项卡是否可见。

如果我使用JSP然后很容易使用taglib来解决这个问题,因为jsp是在服务器上编译的,并且返回的html不会有隐藏标签的html部分,并且最终用户无法看到这些标签或者他们的网址部分。

但是如何在基于角度的应用程序中解决这个问题,因为无论我在angular文件中编写什么代码,用户都可以通过firebug等更改它,并且可以看到选项卡及其URL。

示例:我在我的html中有以下内容:

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

如果用户没有必要的角色,我想完全隐藏这个东西。

一个解决方案可以编写一些指令,但用户可以编辑该指令的脚本,并可以在html中看到这个东西。

1 个答案:

答案 0 :(得分:0)

你需要做两件事:

  • 实现角度服务,为您的客户端授予(通过REST获取)

然后,在服务器端:

  • 您需要保护所有资源(html,角度控制器,角度服务,休息资源),具体取决于用户的权限。 如果客户方不重要,可以只保护Rest资源(我不介意我的用户获取我的HTML)。 这样,用户就不会看到他不应该看到的标签,但更重要的是,他无法绕过您的安全性以显示它。

通过保护HTML,我的意思是对于选项卡XX,我使用ng-include =&#34;&#39; tabXX.html&#39;&#34;,我用同样的方式用Spring Security保护这个html我保护RestResources。