Spring security oauth2错误地将内部URL用作重定向的当前URI
在客户端应用程序希望访问的通过OAuth2保护的远程资源的Spring定义中,我将use current uri设置为true,换句话说,当前uri应该用作重定向(如果可用)。它看起来像:Spring security oauth2错误地将内部URL用作重定向的当前URI,spring,spring-security,oauth-2.0,Spring,Spring Security,Oauth 2.0,在客户端应用程序希望访问的通过OAuth2保护的远程资源的Spring定义中,我将use current uri设置为true,换句话说,当前uri应该用作重定向(如果可用)。它看起来像: <oauth:resource id="myResourceId" type="authorization_code" client-id="${clientId}" client-secret="${clientSecret}" access-token-uri="${accessTo
<oauth:resource id="myResourceId" type="authorization_code"
client-id="${clientId}" client-secret="${clientSecret}"
access-token-uri="${accessTokenUri}"
user-authorization-uri="${userAuthorizationUri}"
use-current-uri="true"
scope="myScope"
pre-established-redirect-uri="${preEstablishedRedirectUri}"/>
现在的问题是,Spring Security OAuth2客户端将获取当前的内部Tomcat URL,而不是公共web应用程序的URL。该场景是位于Apache服务器后面的Tomcat服务器,这会导致两组URL:
- 公共web应用程序的URL为
- 内部Tomcat URL是
- spring-security-oauth2-1.0.5.RELEASE
- 弹簧芯-3.1.2.释放
- spring-security-core-3.1.3.0版本
想知道是否有办法告诉Spring使用公共URL。谢谢。在tomcat conf/server.xml的连接器元素中,尝试如下设置面向tomcat的公共URL:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyName="example.com"
proxyPort="443" (or whatever port you are using, same goes for scheme )
scheme="https" />
这样,tomcat的内部getServerName和getServerPort方法将开始提供正确的值,希望这些值能够创建正确的URL
您可能还希望将Web服务器配置为路由位于以下位置的请求:
如果还没有完成,则返回