We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v1.39.0
网关的路由匹配
我的配置:
@Configuration public class SaTokenConfigure { // 注册 Sa-Token全局过滤器 @Bean public SaReactorFilter getSaReactorFilter() { return new SaReactorFilter() // 拦截地址 .addInclude("/**") /* 拦截全部path */ // 开放地址 .addExclude("/favicon.ico") // 鉴权方法:每次访问进入 .setAuth(obj -> { System.out.println("---------- Sa-Token 全局过滤器 -----------"); System.out.println("path: " + SaHolder.getRequest().getRequestPath()); // 只拦截包含 login、admin 或 super 的路径 SaRouter.match("/auth/**") .match("/**/login/**") .check(r -> StpUtil.checkLogin()); SaRouter.match("/auth/**") .match("/**/admin/**") .check(r -> StpUtil.checkRole("Admin")); SaRouter.match("/auth/**") .match("/**/super/**") .check(r -> StpUtil.checkRole("SuperAdmin")); }) } }
使用不同的路由访问: 路由1:http://{{BLOG_IP}}/blog/friends/public/pageList?page=1&pageSize=10 路由2:http://{{BLOG_IP}}/auth/user/super/getPageUser?page=1&pageSize=5
http://{{BLOG_IP}}/blog/friends/public/pageList?page=1&pageSize=10
http://{{BLOG_IP}}/auth/user/super/getPageUser?page=1&pageSize=5
Caused by: org.springframework.web.util.pattern.PatternParseException: No more pattern data allowed after {*...} or ** pattern element
我认为这段代码应该是匹配以auth开头,而且中间含有login的会检查登录,如果最后check检查不通过,那么才会报错(而不是在match()代码报错.), 如果路由不匹配,那么他应该继续向下运行,
以auth开头
中间含有login
在路由一可以正常访问说明match()这个函数应该不是匹配错误就会报错,但是如果我继续使用链式调用match(),比如示例中的SaRouter.match("/auth/**").match("/**/login/**"),如果第二个match不匹配就会报错.
match()
SaRouter.match("/auth/**").match("/**/login/**")
"/admin/**/login/**"
不知道是我的理解或配置问题,还是bug
The text was updated successfully, but these errors were encountered:
参考一下:
https://sa-token.cc/doc.html#/more/common-questions?id=q%ef%bc%9aspringboot-3x-%e8%b7%af%e7%94%b1%e6%8b%a6%e6%88%aa%e9%89%b4%e6%9d%83%e6%8a%a5%e9%94%99%ef%bc%9ano-more-pattern-data-allowed-after-or-pattern-element
Sorry, something went wrong.
No branches or pull requests
使用版本:
v1.39.0
涉及的功能模块:
网关的路由匹配
测试步骤:
我的配置:
使用不同的路由访问:
路由1:
http://{{BLOG_IP}}/blog/friends/public/pageList?page=1&pageSize=10
路由2:
http://{{BLOG_IP}}/auth/user/super/getPageUser?page=1&pageSize=5
使用路由1就可以正常访问
使用路由2访问的结果报错:
不知道是不是我的配置问题
我认为这段代码应该是匹配
以auth开头
,而且中间含有login
的会检查登录,如果最后check检查不通过,那么才会报错(而不是在match()代码报错.),如果路由不匹配,那么他应该继续向下运行,
在路由一可以正常访问说明
match()
这个函数应该不是匹配错误就会报错,但是如果我继续使用链式调用match(),比如示例中的SaRouter.match("/auth/**").match("/**/login/**")
,如果第二个match不匹配就会报错.如果确实是这样设计的,那也就是说只有第一个match()函数是做匹配路由的,而后面的match类似于检查作用,匹配错误就会报错,个人认为应该让match中的路由匹配写法多一些,比如
"/admin/**/login/**"
不知道是我的理解或配置问题,还是bug
The text was updated successfully, but these errors were encountered: