当前位置: 首页 > 知识库问答 >
问题:

Spring安全中的多重蚁群

濮阳钟展
2023-03-14
http.authorizeRequests()
        .antMatchers("/", "/*.html").permitAll()
        .antMatchers("/user/**").hasRole("USER")
        .antMatchers("/admin/**").hasRole("ADMIN")
        .antMatchers("/admin/login").permitAll()
        .antMatchers("/user/login").permitAll()
        .anyRequest().authenticated()
        .and()
        .csrf().disable();

代码似乎工作正常,除了管理部分-它不工作,但返回访问被拒绝异常。

共有1个答案

颜均
2023-03-14

我相信问题出在你的规则上:

.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/admin/login").permitAll()

规则的顺序很重要,更具体的规则应该放在第一位。现在,以/ADMIN开头的所有内容都需要具有管理员角色的经过身份验证的用户,甚至/ADMIN/login路径也是如此(因为/ADMIN/**规则已经匹配了/ADMIN/**规则,因此忽略了第二个规则)。

因此,登录页面的规则应该在/admin/**规则之前。例如。

.antMatchers("/admin/login").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
 类似资料:
  • 8号突击面,一点八股都不问啊,面试官说不聊八股,全是情景题,然后深挖简历项目,给我难磕巴了,要寄了

  • 4-1一面 50min 自我介绍 项目八股 架构设计 技术选型 实现细节 sso redis的持久化机制 数据类型 LRU的实现思路 数据一致性的问题 如果让你设计一个dubbo 该考虑什么 实现原理 clickhouse jvm gc机制 gc问题 gc调试 算法 topK问题 10亿数字找到最大的1000个

  • 我的应用程序中有两个URL: (角色-abc应该可以访问它) 为此,我配置了: 我希望角色为ABC的用户不能访问,但他可以。 我还想知道什么将发生的链接中没有提到的。我的猜测是,无论角色如何,都可以毫无问题地访问它们。 我说得对吗?

  • 我有一个auth-cas库,它为我的spring boot项目提供身份验证。在这个auth-cas库中,有一个类扩展并使用以下配置函数 由于这应该是黑框,所以我添加了自己的,如下所示: 我的自定义AuthenticationProvider实现了“AuthenticationProvider”,并在页面中工作,将我重定向到/login页面,我可以使用用户库中的凭据登录。唯一的问题是,当我已经登录到

  • 我有使用令牌保护的服务,如下例所示:https://stackoverflow.com/A/10864088/278279 问题是当我添加文件上传时,筛选器找不到请求中的令牌(我认为原因是请求有多部分类型) 我正在使用CommonsMultipartResolver 和简单的spring控制器来接收文件 为了解决我修改的问题,如果请求具有多部分类型,则令牌检索:

  • 然后我使用相同的公式来解密密码,通过尝试所有可能的子字符串组合,直到找到正确的一个。 我的问题是A.除了可能的性能问题之外,这种方法还会带来什么危险? B.这种方法是否矫枉过正,像这样加盐和存储盐/密码有必要吗?c.如果没有必要,我还可以使用什么其他方法来加盐和存储盐/密码?