gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:16:45 25 4
gpt4 key购买 nike

我是学生,对我们的开发很陌生。当我使用 Spring MVC 开发 Web 应用程序时,我遇到了一个奇怪的问题。

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

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

那么我该如何隐藏它呢?我知道所提供的信息不足以回答,但请提供一些想法。我被这个问题困住了。我听说在这种情况下我可以使用spring授权来拦截url请求。但出于学习目的,我们不想使用它。有什么想法吗?

谢谢

最佳答案

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

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

但既然你不希望这样,替代方案是:

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

替代方案基本上是实现 Spring Security 开箱即用的功能的方法。

关于java - 根据权限限制对某些页面的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com