Java angularjs和服务器端授权
我是Angular js和SPA的新手,我面临着编辑\查看数据和页面的授权问题 我的具体案例是关于一个相当复杂的页面,它可能有:Java angularjs和服务器端授权,java,angularjs,security,authorization,Java,Angularjs,Security,Authorization,我是Angular js和SPA的新手,我面临着编辑\查看数据和页面的授权问题 我的具体案例是关于一个相当复杂的页面,它可能有: 仅当托管对象处于特定状态且由具有特定角色的用户编辑时,页面中的某些数据才可编辑,但可由其他角色(包括某些操作按钮)查看 在托管对象的特定状态下,只能由特定角色查看的页面或部分页面 我习惯于使用java编写服务器端web应用程序,通常我在服务器级别进行数据授权处理(可编辑\不可编辑),这非常简单 对于Angular js,从我所看到的到现在,所有这些都应该在客户端处
- 仅当托管对象处于特定状态且由具有特定角色的用户编辑时,页面中的某些数据才可编辑,但可由其他角色(包括某些操作按钮)查看
- 在托管对象的特定状态下,只能由特定角色查看的页面或部分页面
- 可编辑\不可编辑\可查看\不可查看数据-->服务器为AngularJS模板提供正确的标记,AngularJS提供页面逻辑、调用REST WS、数据绑定、事件处理等
- 可查看\不可查看页面->服务器提供模板或“未授权”页面,Angularjs完成其余工作
- 在服务器端隐藏“禁止”数据-->可以避免发送授权的JSON数据。好的,但是用户总是可以通过开发工具看到这些数据的“存在”。无论如何,这不是什么大问题
- 授权数据编辑-->未找到其他解决方案,只能由Angular js处理
- 使用角色授权页面-简单:禁用页面由Angular处理,如果用户角色在页面授权角色列表中,则这些页面可见。 在登录时发送用户角色,并在请求页面\视图时检查引导是否正常。智能用户可轻松更改
- 授权具有角色的页面-高级 服务器在引导时发送页面授权角色列表或数据操作(创建、更新、删除等),并在请求页面时检查用户角色是否在授权角色列表中。比前一个更好,但是智能用户无论如何都可以知道角色授权,并且使用开发工具可以解锁被禁止的页面(如果他足够聪明的话)
- 使用功能授权授权页面:与以前的解决方案类似,但更好。服务器发送页面所需的授权,并在登录时发送用户的授权列表。这使得智能用户更难处理授权逻辑,并完全剥夺了智能用户对应用程序角色及其授权的了解(好)。但最后他还是可以打开这些页面
Massimo如果特定用户没有正确的角色/权限,您完全可以使用服务器端安全性来停止加载模板。在99/100的情况下,保护模板实际上并没有什么区别,您关心的是保护的数据。如果您关心的是保护模板,那么请务必使用服务器端安全性,在客户端执行的任何操作都不会受到窥探。除此之外,任何人都可以编写或使用任意数量的现有程序在服务器上发送修改过的垃圾,因此客户端安全性基本上没有意义。