2014-10-06 96 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