日前在使用satoken的过程中遇到一个问题:非Web上下文无法获取Request。
微服务场景MQ的消费通过feign调用了其它服务(使用@Scheduled注解能模拟复现),而在RequestInterceptor的实现里使用了SaUtil的api。
官网解答:
思考了一下,需要去判断下SaUtil的api需不需要调用,于是去看了下sa抛出该异常的地方
那问题就很好解决了,提前做了一下判断,如:
public boolean isWebRequest(){
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return ObjectUtil.isNotEmpty(servletRequestAttributes);
}
初次在项目中使用satoken,遇到了一些问题,做一下记录避免日后忘记。