【发布时间】:2016-06-03 14:35:48
【问题描述】:
我有一个要求,应用程序需要根据用户具有的角色和传递的参数来保护用户的 URL。..
例如: 有四个角色 PREVIEW_VIEW、PREVIEW_MODIFY、PUBLIC_VIEW、PUBLIC_MODIFY
并且 URL 命中是 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)
谢谢
车坛
【问题讨论】:
-
问题太宽泛了。本质上,用户/角色应该在服务器端会话中维护。 Spring security 内置了基于角色保护资源的机制。
-
您可以使用 HMAC 来检测 URL 篡改。不过,您最好将接收者类型保持在会话中
标签: spring security spring-mvc spring-security