一、该问题的重现步骤是什么?
1. 前端请求接口时,先以options的方式请求
2. TokenInterceptor拦截options请求,执行AuthUtil.getUser()时,拿不到options请求的token信息,提示签名认证失败
二、你期待的结果是什么?实际看到的又是什么?
期待:请求为options时,能直接放行,不去认证header里的token。(这是org.springblade.core.secure.interceptor里的源码,除了改源码有什么别的办法吗?)
实际:options请求里没有token,直接鉴权失败。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
Bladex-boot 2.8.0 商用 win10
四、请提供详细的错误堆栈信息,这很重要。
WARN 10808 --- [ XNIO-1 task-1] o.s.c.s.interceptor.TokenInterceptor : 签名认证失败,请求接口:/demo/home-info,请求IP:127.0.0.1,请求参数:{}
五、若有更多详细信息,请在下面提供。
你这样配置下看看,针对特定接口的OPTIONS请求放行
#blade配置 blade: #安全框架配置 secure: #授权认证配置 auth: - method: OPTIONS pattern: /demo/home-info expression: "permitAll()"
另外你是所有接口都会这样还是说就几个?如果所有都这样的话,推荐改源码
讨论(1)
-
BladeConfiguration 已经设置好了跨域的配置了,为什么还会出现这种情况?
讨论(0)