2015-10-06 99 views
4

我在搜索很多關於此主題的內容,但找不到解決方案。Java SSO with Wildfly 8,Java 1.8.0_45和Active Directory

的要求簡述:

  • SSO在Web應用程序Wildfly下8.2
  • 驗證的Windows用戶到Active Directory
  • 預置至登錄表單,當SSO失敗
  • 在運行域名配置Wild

環境:

  • Microsoft AD Windows Server 2012 R2(1。機)
  • 微軟Server 2012的R2與Wildfly 8.2(2機)
  • 的2.Machine亞斯加入域

我試了一下,到目前爲止,勢必將AD和通過的ktpass的Wildfly服務器,kinit,...它的工作原理!

  1. 嘗試以下操作: github.com/dstraub/spnego-wildfly 其實也不是工作,沒有回退(基於表單),並與Java版本1.8.0_45 sourceforge.net/p/spnego/discussion/1003769一個問題/線程/ 700b6941 /#cb84。

  2. 嘗試下一個: github.com/kwart/spnego-demo 也不工作,似乎Wildfly 8.2具有不同的行爲。

  3. WAFFLE庫: 無法在Wildfly下運行,對Tomcat有很好的支持,但不是更多。

有人對此配置有過使用經驗,有一個解決方案嗎?

+0

我終於和WAFFLE合作了。 –

+0

如何?請分享這些信息! – bebbo

回答

3

這裏的解釋是:

  1. 我已經創建了以下庫web應用程序包括:

    • 番石榴18.0.jar
    • JNA-4.1.0.jar
    • jna-platform-4.1.0.jar
    • slf4j-api-1.7.12.jar
    • waffle-jna-1.7.4.jar
  2. 我已經在Web中聲明瞭Web過濾器。XML:

<filter> 
    <filter-name>SecurityFilter</filter-name> 
    <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>SecurityFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
  • 那之後,可以將來自HttpServletRequest讀取用戶
  • public String getUserName() { 
        Enumeration<String> headerNames = servletRequest.getHeaderNames(); 
        while (headerNames.hasMoreElements()) { 
         String headerName = headerNames.nextElement(); 
         String headerValue = servletRequest.getHeader(headerName); 
         System.out.println("Header Name:" + headerName + " " + headerValue); 
        }  
        return servletRequest.getUserPrincipal().getName(); 
    } 
    
  • 配置您的單點登錄瀏覽器:
  • https://github.com/dblock/waffle/blob/master/Docs/ConfiguringBrowsers.md

    0

    我會解釋技術,阿肯談NTLM ......,SPNEGO dstraub是一個面向SPNEGO的Kerberos,如果你讀它是寫不支持NTLM

    的來源,但如果你使用JSF和有PhaseListener你會直接在登錄表單上重定向,然後才能過濾,使用AS JBOSS,你可以使用閥門在jbossweb中進行身份驗證...但不能與wildfly

    因爲你不能在web.xml中放置2 auth-form方法,你必須使用基於SPNEGO的新機制認證,如果你想Kerberos(如過濾鏈中的鏈),基於華夫餅如果你想要NTLM 因爲在華夫餅乾網站上它寫的是蜻蜓的閥門工程,但它是一個錯誤,現在widlfy使用沒有更多的tomcat閥門進入,此外widlfy 9我認爲8也刪除所有認證機制,只有FORM,BASIC, EXTERNAL和CERT-DIGEST存在,widlfy 10加kerberos認證

    現在NTLM偶數版本2已過時並且沒有多年的安全性,所以使用kerberos驗證更加安全(活動目錄中只有少量配置)...