加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Spring security oauth2错误地使用内部URL作为重定向的当前URI

发布时间:2020-12-15 01:27:43 所属栏目:大数据 来源:网络整理
导读:在通过客户端应用程序想要访问的OAuth2保护的远程资源的Spring定义中,我将use-current-uri设置为true,换句话说,当前URI应该用作重定向(如果可用).看起来像: 现在问题是,Spring Security OAuth2客户端将获取当前内部Tomcat URL而不是公共Web应用程序的URL.该

在通过客户端应用程序想要访问的OAuth2保护的远程资源的Spring定义中,我将use-current-uri设置为true,换句话说,当前URI应该用作重定向(如果可用).看起来像:

现在问题是,Spring Security OAuth2客户端将获取当前内部Tomcat URL而不是公共Web应用程序的URL.该场景是位于Apache服务器后面的Tomcat服务器,它产生两组URL:

>公共Web应用程序的URL为http://example.com/users/login
>内部Tomcat URL为http://localhost:8080/myapplication/users/login

因为重定向URL用于授权服务器(例如,Twitter,ORCID)用于发回授权代码,所以应该使用公共Web应用程序的URL,而不是内部URL.

顺便说一句,我使用的是spring-security-oauth2的以下版本:

> spring-security-oauth2-1.0.5.RELEASE
> spring-core-3.1.2.RELEASE
> spring-security-core-3.1.3.RELEASE

想知道是否有办法告诉Spring使用公共URL.谢谢.

最佳答案
在tomcat conf / server.xml的connector元素中,尝试像这样设置前面tomcat的公共URL:

    

这样,tomcat的内部getServerName和getServerPort方法将开始提供正确的值,希望这些值可以创建正确的URL.

您可能还希望将Web服务器配置为路由请求的路由
http://example.com/users/login至http://localhost:8080/myapplication/users/login,如果尚未完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读