在 Spring Cloud 微服务架构体系中,通常使用 Feign
作为服务之间的通信组件,但是在某些场景下我们对某个服务做了权限拦截,例如 Shiro
或者 Spring Security
,往往需要验证 token
。
使用 Feign 如何解决 token 的问题呢?
可以先获取原 token
,重新转发 token
@Configuration
public class FeignConfig implements RequestInterceptor {
@Overridepublic void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();requestTemplate.header("X-Access-Token", request.getHeader("X-Access-Token"));}
}
s