我想在部署在Wildfly 9的同一个实例上的两个应用程序之间实现SSO。我已经搜索过它,但从未获得有关它的足够信息。
首先,我们必须从standalone.xml
开始:
<subsystem xmlns="urn:jboss:domain:undertow:2.0">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<single-sign-on domain="localhost"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
然后在jboss-web.xml
中输入以下安全域和阀门:
<jboss-web>
<security-domain>java:/jaas/other</security-domain>
<valve>
<class-name>org.apache.catalina.authenticator.SingleSignOn</class-name>
</valve>
</jboss-web>
我不确定web.xml
的变化。
我认为我们必须提供有关security-constraint和login-config的信息。
请帮助我在群集和非群集环境中实现此概念。
答案 0 :(得分:4)
尝试在default-host
服务器下的default-server
主机上添加以下行:
<single-sign-on path="/"/>
最后,它会像:
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<single-sign-on path="/"/>
</host>
</server>
我使用的是 Wildfly 9.0.2 Final 。
答案 1 :(得分:0)
org.apache.catalina.authenticator.SingleSignOn无法在WildFly AS上运行,因为Tomcat被Undertow替换为Web容器。 通常,您不需要对jboss-web.xml进行任何更改。
对于基于PicketLink的IdP,您可以按照以下步骤设置jboss-web.xml以启用PicketLink身份验证器:
try?
答案 2 :(得分:0)
我完成了“tiago mussi”的回答,因为它使用了新的网络服务器底板,所以阀门在widlfy上得到了支持,你可以将阀门线放在jboss-web中,它什么都不做......
<single-sign-on domain="localhost"/>
这是错误的语法,因为域sso中存在错误
<single-sign-on path="/"/>
这是正确的语法,然后在您的Web应用程序中,您将看到JSESSIONSSOID或者此名称在加号而不是SESSIONID
picketLink太多只是为了使用SSO,因为它处理API REST SSO,社交安全,它是一个具有新机制认证的特定模块,而且如果你将管理多个URL,你不能,因为你必须把配置放入网址,它不是动态的......