2015-10-27 183 views
1

我想在兩個部署在同一個Wildfly 9實例上的應用程序之間實現SSO。我已經搜索了它,但從來沒有獲得足夠的信息。需要關於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變化。

我想我們必須提供有關安全約束和登錄配置的信息。

請幫我在集羣環境和非集羣環境中實現這個概念。

回答

4

嘗試在「默認主機」主機添加以下行下的「默認的服務器」服務器:

<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。

0

org.apache.catalina.authenticator.SingleSignOn無法在WildFly AS上工作,因爲Tomcat被Undertow取代爲Web容器。 通常,您不需要對jboss-web.xml進行任何更改。基於PicketLink

對於境內流離失所者,你可以設置的jboss-web.xml中如下使PicketLink身份驗證:

<filter> 
    <filter-name>IDPFilter</filter-name> 
    <filter-class>org.picketlink.identity.federation.web.filters.IDPFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>IDPFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
0

我完成了「蒂亞戈穆西」的答案,閥注不再支持上widlfy因爲它採用了全新的Web服務器的暗流,你可以把閥門線的jboss-網絡會做什麼都沒有......

<single-sign-on domain="localhost"/> 

這是語法錯誤,因爲在域SSO

錯誤
<single-sign-on path="/"/> 

這是正確的語法,然後在你的web應用程序,你會看到JSESSIONSSOID或類似這樣的名字加比SESSIONID

picketLink太多隻爲使用SSO,因爲它處理API REST SSO,社會安全,它是一個具有新機制認證的特定模塊,此外,如果您將管理多個URL,則您無法配置url,因此它不是動態的...