在通过客户端应用程序想要访问的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:
原文链接:https://www.f2er.com/spring/432123.html
这样,tomcat的内部getServerName和getServerPort方法将开始提供正确的值,希望这些值可以创建正确的URL.
您可能还希望将Web服务器配置为路由请求的路由
http://example.com/users/login至http://localhost:8080/myapplication/users/login,如果尚未完成.