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

前端之家收集整理的这篇文章主要介绍了Spring security oauth2错误地使用内部URL作为重定向的当前URI前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在通过客户端应用程序想要访问的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/loginhttp://localhost:8080/myapplication/users/login,如果尚未完成.

原文链接:https://www.f2er.com/spring/432123.html

猜你在找的Spring相关文章