ServerHttpSecurity直接贴代码。

这是之前一直改用的配置,访问此路径一直是401(403)。但是把anyExchange也设置成permitAll。是可以访问了。(而且另一种情况:.pathMatchers(“/gateway/**”).authenticated()
.pathMatchers(“/ **”).permitAll()。这种也是可以了,就是反过来不行)。后来再想能不能吧后面这个anyExchange改一下,看了一下源码是有理由的。
贴代码2:

改成了这种。
accessManager代码块:

import cn.hutool.core.collection.ConcurrentHashSet;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authorization.AuthorizationDecision;
import org.springframework.security.authorization.ReactiveAuthorizationManager;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.server.authorization.AuthorizationContext;
import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;import java.util.List;
import java.util.Set;@Component
public class AccessManager implements ReactiveAuthorizationManager<AuthorizationContext> {private static final AntPathMatcher antPathMatcher = new AntPathMatcher();public static List<String> DATABASE;@Value("#{'${gateway.whitelist}'.split(',')}")public void setDatabase(List<String> db) {DATABASE = db;}/*** 实现权限验证判断*/@Overridepublic Mono<AuthorizationDecision> check(Mono<Authentication> authenticationMono, AuthorizationContext authorizationContext) {ServerWebExchange exchange = authorizationContext.getExchange();//请求资源String requestPath = exchange.getRequest().getURI().getPath();// 是否直接放行if (permitAll(requestPath)) {return Mono.just(new AuthorizationDecision(true));}return authenticationMono.map(auth -> {return new AuthorizationDecision(checkAuthorities(exchange, auth, requestPath));}).defaultIfEmpty(new AuthorizationDecision(false));}/*** 校验是否属于静态资源* @param requestPath 请求路径* @return*/private boolean permitAll(String requestPath) {return DATABASE.stream().filter(r -> antPathMatcher.match(r.replace("/gateway", ""), requestPath)).findFirst().isPresent();}//权限校验private boolean checkAuthorities(ServerWebExchange exchange, Authentication auth, String requestPath) {Object principal = auth.getPrincipal();return true;}
}

现在就没有401,可以访问到了,看了改了anyExchange是好使的。

https://blog.csdn.net/yelvgou9995/article/details/107229699/

ServerHttpSecurity设置pathMatchers.permitAll失效,仍然401.相关推荐

  1. EXCHANGE2O10用户设置外出助理失效

    EXCHANGE2O10用户设置外出助理失效 问题: 在客户端OU中设置了外出助理,但是外部用户收不到自动回复. 解决办法: 1, 首先确保对问题邮件账号未设置任何自动重定向的策略. 2, 对该账号未 ...

  2. POI 单元格设置背景颜色失效(背景色设置方式),以及背景颜色生效后单元格边框线消失问题解决

    单元格设置背景颜色失效原因 当只设定 setFillForegroundColor 时是不行的,还需要再设置一下 setFillPattern 即 style.setFillForegroundCol ...

  3. mysql数据库设置外键失效【仅仅推荐测试库】

    MYSQL在进行数据删除时,由于有外键不能进行修改和删除. 解决办法:可以设置外键失效.删除完之后,开启外键约束 1.查看外键约束 SELECT@@foreign_key_checks; 2.设置外键 ...

  4. 微信小程序 border设置单边框失效解决办法

    微信小程序 border设置单边框失效解决办法 遇到的问题 解决的方法 总结 遇到的问题 border-right: 1 rpx solid #ccc;border-bottom: 1 rpx sol ...

  5. 设置php缓存失效,PHP使用Memcache时模拟命名空间及缓存失效问题的解决

    缓存命名空间 memcache本身不支持命名空间,但是我们可以利用 memcache本身的机制,来模拟命名空间.比如:你要清除一组数据,就需要用到命名空间,来看这样一个例子,说明写在了注释里: cla ...

  6. 高恪路由设置静态路由失效的问题另类解决方法

    也不知是静态路由设置问题,还是高恪固件问题,反正每次失效后,我只要打开静态路由页面重新提交一下就可以,也找不到问题所在,干脆写个脚本,定时去点击一下提交,这下总不会失效了吧/ 贴上python代码 # ...

  7. textView代码设置文字居中失效 textView设置文字居中两种方法

    1.TextView的高度占据整个父控件的高度,然后设置TextView的Grayvity Center就可以了. 2.如果第一个方法不行,那么,textView的高度设置为warp_content, ...

  8. Android使用ActivityGroup设置android:windowSoftInputMode失效的问题

    前言 当使用ActivityGroup--设置Activity的android:windowSoftInputMode为stateHidden隐藏软键盘时,有可能出现隐藏失败的问题,在模拟器中以及MO ...

  9. iOS 中设置下划线失效不显示

    今天测试提出了bug,说没有按照UI图设置下划线.不对呀,我用模拟器和真机都测了,正常显示.一看测试的版本为10.3,下划线没有. 之前在设置下划线的时候: NSMutableAttributedSt ...

最新文章

  1. DBA的宿命(困兽之斗)
  2. vue如何取消下拉框按回车自动下拉_如何用大白菜重装系统|大白菜怎么重装系统教程详解...
  3. 计算机中丢失api-ms-win-crt-locale,API-MS-WIN一系列丢失DLL打包
  4. linux 内核配置v4l2,深入理解linux内核v4l2框架之videobuf2【转】
  5. erp软件是什么软件
  6. c语言创建线程代码,如何用C语言实现多线程
  7. python—python2内置函数与python3内置函数总结
  8. call stack详解
  9. cuda驱动更新方法之一:
  10. matlab 入射线反射线,ray 射线追踪的仿真小程序最多可以模拟三次反射, 出 图 matlab 272万源代码下载- www.pudn.com...
  11. android桌面,Android Q带来全新桌面模式
  12. 微服务架构之监控预警
  13. 计算机组装与维修第3版,计算机组装与维护(第3版)
  14. MFSPV: A Multi-Factor Secured and Lightweight Privacy-Preserving Authentication Schem
  15. 崩坏3新版本服务器维护多久,崩坏3 3月14日版本更新维护通知
  16. GAN 的训练、调参实践
  17. [USACO13FEB]拖拉机Tractor
  18. supervisor 常见错误及其解决方案
  19. FS-LDM第一讲-----金融业务逻辑数据模型
  20. 微软ERP——Dynamics AX 4.0_安装篇

热门文章

  1. 如何关闭苹果手机app评分及评论
  2. Java中getter/setter方法的使用和解析
  3. Photoshop CC从入门到精通教程-李发展-专题视频课程
  4. PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)
  5. 数据库概念、分类(按存储方式)详解
  6. 【JVM系列】读懂Java虚拟机(JVM)这一篇就够了!
  7. 【noip2016十连测round3】T3 涂色游戏 【矩阵快速幂优化dp】
  8. 汇付天下支付接口商户分类分析
  9. WinMount 2.2.0 版
  10. context类 java_java-@Context注入在Jersey ContainerRequestFilter(Dro...