TokenInterceptor没有对options的处理导致签名认证失败

Blade 未结 2 1679
llr
llr 剑圣 2021-03-11 23:34

一、该问题的重现步骤是什么?

1. 前端请求接口时,先以options的方式请求

2. TokenInterceptor拦截options请求,执行AuthUtil.getUser()时,拿不到options请求的token信息,提示签名认证失败

image.png


二、你期待的结果是什么?实际看到的又是什么?

期待:请求为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,请求参数:{}

五、若有更多详细信息,请在下面提供。


2条回答
  • 2021-03-12 10:44

    你这样配置下看看,针对特定接口的OPTIONS请求放行

    #blade配置
    blade:
      #安全框架配置
      secure:
        #授权认证配置
        auth:
          - method: OPTIONS
            pattern: /demo/home-info
            expression: "permitAll()"

    另外你是所有接口都会这样还是说就几个?如果所有都这样的话,推荐改源码

    0 讨论(1)
  • 2021-09-09 14:54

    BladeConfiguration 已经设置好了跨域的配置了,为什么还会出现这种情况?

    0 讨论(0)
提交回复