我的 Apache Webserver (版本2.4)位于防火墙后面,可从互联网访问 . Web服务器将请求代理到 WSO2 Identity Server 5.0.0 ,该请求在默认 Apache Tomcat (端口9443)中运行 . WSO2 IS用作身份提供者,我的服务提供者是使用 passive STS 进行身份验证的应用程序 . 现在我希望WSO2 IS可用于 /sso
而不是根级 /
,因为此Apache Web服务器也映射了不同的其他应用程序 .
Apache站点配置(代码段) . Apache正在侦听端口443(启用SSL)
<Location /sso >
ProxyPass https://localhost:9443/sso
ProxyPassReverse https://localhost:9443/sso
</Location>
${CARBON_HOME}/repository/conf/carbon.xml
的变化
<WebContextRoot>/sso</WebContextRoot>
${CARBON_HOME}/repository/conf/tomcat/catalina-server.xml
的变化
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9443"
proxyPort="443"
proxyName="my.ssosystem.com"
bindOnInit="false"
sslProtocol="TLS"
maxHttpHeaderSize="8192"
acceptorThreadCount="2"
maxThreads="250"
minSpareThreads="50"
disableUploadTimeout="false"
enableLookups="false"
connectionUploadTimeout="120000"
maxKeepAliveRequests="200"
acceptCount="200"
server="WSO2 Carbon Server"
clientAuth="false"
compression="on"
scheme="https"
secure="true"
SSLEnabled="true"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
URIEncoding="UTF-8"/>
现在我有几个问题
-
请求
/sso/passivests
将我重定向到碳管理员登录(/sso/carbon/admin/login.jsp
),而 302 改为/sso/commonauth
-
以管理员身份登录WSO IS之后,它按预期工作,但后来我被 302 重定向到
/authenticationendpoint
而不是/sso/authenticationendpoint
. 所以我在${CARBON_HOME}/repository/conf/security/application-authentication.xml
中将AuthenticationEndpointURL更改为/sso/authenticationendpoint/login.do
. 但后来我收到http错误 405 (不允许GET方法)
我认为这可能是一个常见的用例(由Apache Webserver代理的Identity Server),但没有找到太多信息 . 有人解决了类似的问题或任何想法吗?