需要有关Wildfly 9 SSO的帮助

时间:2015-10-27 13:19:04

标签: single-sign-on wildfly

我想在部署在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的信息。

请帮助我在群集和非群集环境中实现此概念。

3 个答案:

答案 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,你不能,因为你必须把配置放入网址,它不是动态的......