Spring security Zuul将安全微服务结果发送至401响应的路线

Spring security Zuul将安全微服务结果发送至401响应的路线,spring-security,spring-cloud,netflix-zuul,Spring Security,Spring Cloud,Netflix Zuul,我已经创建了一个Zuul代理,它将请求路由到microservice basic auth中的安全端点 我的Zuul代理在8888端口上运行 我的安全微服务有一个端点/api/foo,带有用户名:通过Spring Security进行密码身份验证。具有等于安全服务的服务id 现在,每当我访问时,浏览器都会提示我输入用户名和密码,以证明它确实路由到安全服务。但进入后,它就一直问我的证件。 我还尝试通过curl访问它, 卷曲http://username:password@localhost:888

我已经创建了一个Zuul代理,它将请求路由到microservice basic auth中的安全端点

我的Zuul代理在8888端口上运行

我的安全微服务有一个端点/api/foo,带有用户名:通过Spring Security进行密码身份验证。具有等于安全服务的服务id

现在,每当我访问时,浏览器都会提示我输入用户名和密码,以证明它确实路由到安全服务。但进入后,它就一直问我的证件。 我还尝试通过curl访问它, 卷曲http://username:password@localhost:8888/secure service/api/foo,我得到401响应

为什么会这样

然后,我尝试删除我的安全服务上的spring安全依赖项和配置,一切正常。但是我真的想要基本的身份验证


谢谢你的阅读。

我终于找到了答案: Zuul中有一个名为 zuul.sensitive-headers

此属性是一个字符串集合,其中包含不包含以传递给MicroService的标头。目前,SpringCloudZuulVer2.2.1.RELEASE默认设置这3个值

Cookie,设置Cookie,授权

看在上帝的份上,他们把授权作为一个敏感的标题,这就是为什么每当Zuul试图路由到一个安全的微服务时,你会不断收到401个未经授权的响应

解决方案只是在Zuul应用程序中删除Config属性中的授权

zuul.sensitive headers=Cookie,设置Cookie

希望能有帮助