Spring Security:保护URL和参数

时间:2016-02-22 08:35:32

标签: spring security spring-mvc spring-security

我有一个要求,即应用程序需要根据用户所拥有的角色和参数传递来保护用户的URL ..

例如: 有四个角色 PREVIEW_VIEW,PREVIEW_MODIFY,PUBLIC_VIEW,PUBLIC_MODIFY

网址命中率是 http://myapp:8080/console/editGroups.action?orgId=1&recipientType=PREVIEW

假设用户只拥有'PUBLIC_VIEW'和'PUBLIC_MODIFY'权限。

如果用户传递参数'recipientType = PREVIEW',那么只有当用户具有'PREVIEW_MODIFY'权限时才能访问该页面。

那么如何一起保护URL和参数呢?

即仅在用户具有PREVIEW_MODIFY权限时才允许此URL(http://myapp:8080/console/editGroups.action?orgId=1&recipientType=PREVIEW) 和 仅当用户具有PUBLIC_MODIFY权限

时才允许此URL(http://myapp:8080/console/editGroups.action?orgId=1&recipientType=PUBLIC

由于

阿赫亚

1 个答案:

答案 0 :(得分:0)

对我来说,这是错误的处理方式。客户端根据定义可以对URL进行更改,因为客户端本身决定调用谁或者调用什么。因此,URL是放置安全信息的最糟糕的地方。此外,如果你需要走这条路,我想你不得不利用加密。

服务器是决定客户端与哪个角色关联的服务器,因此它会强制客户端包含一个带有角色组合的参数。当然,这个必须被加密(对称加密就足够了),因为客户绝不能能够改变它。

当客户端执行请求时,服务器检索加密属性并对其进行解密以获取客户端的角色。

如果您需要使此属性可理解,您可以清楚地显示它并使用其他加密HASH参数。