首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当授权服务器在代理服务器后面时,如何在Auth0中使用令牌交换授权码

问当授权服务器在代理服务器后面时,如何在Auth0中使用令牌交换授权码
EN

Stack Overflow用户
提问于 2019-01-13 00:03:59
回答 1查看 507关注 0票数 0

我正在开发一个spring boot web应用程序,该应用程序托管在Zuul反向代理服务器后面,API网关是nginx。所有应用程序都运行在相同的虚拟机上(NginX、Zuul和My App)。Nginx负责SSL终止,zull负责请求身份验证和授权。我使用OpenID连接通过Auth0进行用户身份验证。

请求流程

代码语言:javascript
复制
Browser --(A)--> NginX --(B)--> Zuul --(c)--> My Application

A- https域名调用,如:https://example.com

B- http调用本地运行的Zull服务器例如:http://127.0.0.1:7070

在nginx服务器中,我给出了一个规则,将所有流量转发到本地运行的Zull服务器

https://example.com --> http://127.0.0.1:7070

通过这种配置,回调URL在Auth0被设置为https://example.com/callback,一旦回调url被调用,它就会以不同的名称被发送到zuul服务器。

代码语言:javascript
复制
https://example.com/callback?code=sf4sf4ds4fdf --> http://127.0.0.1:7070/callback?code=sf4sf4ds4fdf

我使用了Auth0提供的库来将授权码转换为令牌。但是在这一点上,令牌的请求包含的回调url是http://127.0.0.1:7070/callback而不是https://example.com/callback (这是我在Auth0注册并用于获取授权码的url)。因此,系统总是抛出错误。

我可以通过移除nginx服务器并直接将zuul服务器放在最前面(这样就没有url更改)来让它正常工作。有没有什么方法可以让我的现有配置工作。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-01-13 15:46:47

目前,这个问题似乎无法解决,因为将令牌交换为授权代码的请求是构建在Auth0 (mvc-auth-common-1.0.2.jar).提供的库中的回调url是通过调用req.getRequestURL().toString().生成的

因为请求是由nginx代理发送到zull服务器的,所以请求url总是https://127.0.0.1:7070。

为了成功,我不得不使用一些技巧。我使用自定义的http请求包装器包装了请求对象。

代码语言:javascript
复制
import javax.servlet.http.HttpServletRequestWrapper;
class CustomRequesWrapper extends HttpServletRequestWrapper {

        public CustomRequesWrapper(HttpServletRequest request) {
            super(request);
        }

        @Override
        public StringBuffer getRequestURL() {
            return new StringBuffer("https://example.com/callback");
        }
    }

在这里,我返回所需的url。

代码语言:javascript
复制
// Tokens tokens = controller.handle(req); -- previous code 
Toke tokens = controller.handle(new CustomRequesWrapper(req)); // current code

现在,每当调用方法getRequestURL()方法时,都会传递我的域名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54161329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档