当前位置: 代码迷 >> java >> 根据权限限制对某些页面的访问
  详细解决方案

根据权限限制对某些页面的访问

热度:81   发布时间:2023-07-17 21:09:04.0

我是学生,是我们发展的新手。 我在使用Spring MVC开发Web应用程序时遇到了一个奇怪的问题。

我有一些权限来自数据库。 如果我授予用户“ userOne”“ createRole”的权限,则“ userOne”登录- “创建角色”后可以在其仪表板上看到链接。 如果用户单击“创建角色”链接,则服务器将重定向到该url-/secure/roleManagement/createNewRole.html

请注意,如果撤消“ createRole”权限,则用户将无法看到“ Create Role ”链接。 但是即使在此之后,如果我在浏览器中输入url-/secure/roleManagement/createNewRole.html ,那么我仍可以访问创建角色页面,该页面不应出现在用户面前

那我怎么藏起来 我知道所提供的信息不足以回答,但请给出一些想法。 我坚持这一点。 我听说在这种情况下我可以使用spring授权来拦截url请求。 但是出于学习目的,我们不想使用它。 有什么主意吗

谢谢

我相信解决此问题的最佳方法是使用Spring Security名称空间并添加如下所示的拦截规则:

<intercept-url pattern="/secure/roleManagement/createNewRole" 
               access="hasRole(createRole)" 
/>

但是,由于您不希望这样做,因此可以选择:

  1. 假设有一个控制器处理对/secure/roleManagement/createNewRole.html请求,您可以仅在开头添加一个验证,以检查用户是否具有所需角色。
  2. 在一个(或多个)过滤器中创建安全逻辑。 您可能有一个过滤器来拦截此特定的URL,然后为其他URL创建其他过滤器(这可能不是一个好主意,具体取决于您需要处理的URL数量),也可以有一个安全过滤器来处理所有这些URL。 。

这些选择基本上是实现Spring Security开箱即用的方法。

  相关解决方案