2013-03-20 179 views
6

由於Spring 3不支持NTLM身份驗證,因此我正在使用Spring 3 Web應用程序,可以使用Spring安全性的其他選擇是什麼?這樣,用戶在登錄到Active Directory時就可以通過應用程序進行身份驗證?Spring 3和NTLM身份驗證

Kerberos解決方案目前不是一種選擇,NTLM是唯一的選擇。

任何幫助是非常可觀的。

謝謝

+0

NTLM是不是專有的,不要期望在Java中找到一個可行的解決方案 – 2013-03-20 21:49:39

+0

得到任何結果? – 2013-03-22 10:03:59

+0

@MichailNikolaev因爲這需要在AD中設置一個小設置,所以我正在等待我們的系統管理員返回我的請求。你的回答是關於結果的,順便說一句,沒有任何AD設置,是否可以進行NTLM認證? – user75ponic 2013-03-23 02:47:06

回答

3

我已經做了一次。抓住它here。它將需要在AD級進行一些小設置。隨意在這裏或在github上提問。

+0

AD級別的安裝需求是什麼?我使用的是Weblogic 10.3.6,所以有任何兼容性問題? – user75ponic 2013-03-21 00:58:58

+0

只是爲了創建類型爲「computer」的帳戶並在AD服務器上執行SetComputerAccountPasswordWindows7.vbs。 應該在沒有任何問題的情況下使用Weblogic 10.3.6。 – 2013-03-21 06:59:17

7

爲您解決問題最簡單的方法是:

1)安裝Apache Web服務器,並配置使用modntlm

http://modntlm.sourceforge.net/ (類似,你可以使用mod_auth_kerb所使用http://modauthkerb.sourceforge.net/使用Kerberos身份驗證使用NTLM身份驗證)

2)配置mod_jk到你的Selvlet容器(JBoss或Tomcat) http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html 驗證成功後Apache發送REMOTE _USER頭部到servlet容器。 頭(根據名稱)包含已驗證用戶的用戶名 確保您配置tomcatAuthentication =「假」,讓Apache來讓apache的發送REMOTE_USER頭

3)落實和春季安全你自己的配置PreAuthenticatedProcessingFilter: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6167 它應該是非常相似的請求 - 頭認證過濾器: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6295 此外,還應該從用戶名省略域名。 用戶名在NTLM或Kerberos驗證後在REMOTE_USER標頭中發送。

4

華夫是在溶液滴可以與springsecurity來實現這一目標: https://github.com/dblock/waffle

我已經例如採用hybris用它自己。他們有一些例子。請注意版本1.5使用jna3.5,這可能會導致高負載時出現問題 也請注意,如果我們的應用程序需要執行授權,您可能需要擴展negotiatesecurityfilter(我必須這樣做,可能會在1.6中進行修復)