首页 > 解决方案 > 为什么 Jhipster 网关将没有访问令牌的请求转发到微服务 api?

问题描述

我已经使用 Jhipster 生成了一个微服务应用程序。我还生成了一个 Eureka 注册表、Zuul 网关和用于身份验证的 UAA 服务器(使用 Oauth2)。我想使用授权类型“密码”进行身份验证,客户端在请求中发送用户名、密码并获取访问令牌作为回报,该令牌将用于后续交互。

我能够让所有东西都启动并运行,还可以创建一个用户并获取他的访问令牌。但是当我在没有任何访问令牌的情况下向微服务 API 发送任何请求时,网关会处理(运行一些过滤器)并将请求转发给微服务 API。我期待它返回一个 403 错误,说明需要身份验证。在调试时,我看到有一个 spring 'OAuth2AuthenticationProcessingFilter' 运行并阻止具有过期令牌的任何请求,但如果不存在令牌,它允许请求通过并命中微服务 api。

我对此感到困惑,这是否意味着我们需要编写自定义代码才能让 oauth2 与 Jhipster 一起使用?我是否应该为此编写自己的过滤器来检查访问令牌并使用 UAA 进行验证?浏览 Jhipster 文档,我觉得它应该开箱即用。如果这是一个愚蠢的问题,我没有使用 Spring security 或 Jhipster 的经验,所以很抱歉。

标签: oauth-2.0microservicesjhipster

解决方案


推荐阅读