springcloud在服务端怎么区分调用请求的客户端是feign还是浏览器?

发布于 2022-09-07 23:08:24 字数 292 浏览 13 评论 0

目的要实现权限验证,没用springcloud之前就在http请求的filter做了根据token验证权限,前端必须带token
加入springcloud之后,微服务用feign调用,但实际还是http请求,我不想每个feign方法都写上token参数,太麻烦。但是没有token,就过不了原来的权限验证。现在有几个可能的解决方案:
1.服务端的filter区分客户端是feign还是前端浏览器,是feign就不鉴权了
2.feign能设置全局默认传的参数,可以加一些参数让服务端识别出是feign,同时又不用在每个feign接口代码就加入这样的代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半岛未凉 2022-09-14 23:08:24

自问自答一下,可以用feign拦截器实现,在任意位置添加以下类

/**
 * feign请求拦截器
 * 所有用feign发出的请求的拦截器,注意是feign作为客户端发出请求的,而不是服务端
 */
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        //这里可以添加feign请求的全局参数

    
        requestTemplate.header("msClientId", "8888");
    }
}
绻影浮沉 2022-09-14 23:08:24

这种请求,普通请求也会拦截吧。根本没法识别是不是feign请求。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文