代码之家  ›  专栏  ›  技术社区  ›  Alpesh Jikadra

Spring boot oauth2响应,重定向url作为基础服务而不是代理(网关)

  •  0
  • Alpesh Jikadra  · 技术社区  · 4 年前

    我正在使用Springboot实现oauth2服务器

    我有四个微服务

    1. 销售(销售)
    2. 存货(存货)
    3. IAM服务(授权服务器,带有Oauth2)(http://iam:8089)
    4. 网关(网关打开) http://www.gateway.com )

    所有这些服务都在Spring clould gateway的后面,其部署在K8S之下,以及 网关 作为外部接口公开。

    现在,如果我尝试通过下面的网关使用oauth2对用户进行身份验证。

    第一步:

    Http请求 http://www.gateway.com/oauth/authorize

    所以作为回应,我觉得

    地方 : http://iam:8089/v1/oauth/login(但期望是有限的。) http://www.gateway.com/oauth/login )

    因为那个浏览器 把我转到http://iam:8089/oauth/login

    理想情况下,我希望它也通过网关服务进行路由,比如

    http://www.gateway.com/oauth/login

    有人能帮我解决这个问题吗。

    谢谢 阿尔皮什

    0 回复  |  直到 4 年前
        1
  •  0
  •   Gary Archer    4 年前

    听起来这是一个很好的设置,符合我们在我们的网站上推荐的Curity IAM Primer Article ,授权服务器(AS)位于反向代理或网关后面。

    在您的情况下,AS在http://Iam:8089但这是一个内部URL。AS还有一个供internet客户端使用的“基本URL”,这是网关的URL,即 http://www.gateway.com 在你的例子中:

    • 它将在OpenID连接发现请求中返回给客户端
    • 在验证期间,它将在浏览器重定向中返回到浏览器

    Spring OAuth2服务器中应该有一个地方可以设置基本URL,类似于Security Identity服务器中的URL(见下图)。这个过程应该是设置这个值,然后验证它是否在元数据请求中返回。然后应该正确配置。

    enter image description here

    在春天,我希望你需要的设置是在某个地方的流畅配置中——可能是 Configurer classes 我发现在春天很难找到我想要的东西。

    推荐文章