2013-03-21 64 views
3

我們有一個應用程序返回登錄用戶名(Windows NTLM),我們通常會傳遞給所有其他應用程序來檢查身份驗證部分。將用戶名傳遞給Spring Security

我想知道是否可以通過返回用戶名 的應用程序傳遞用戶名並傳遞給我們使用Spring 3開發的新Web應用程序?因此,我們可以利用Spring Security功能的使用

如果可能,我該如何使用它?

由於我們已經有了一個返回Windows用戶的應用程序,管理層不鼓勵使用Kerberos和其他SSO方法。

任何幫助或洞察力是非常有益的和有益的。

感謝

+0

春季網頁應用程序,還是春季獨立應用程序? – DavidA 2013-03-21 05:18:53

+0

SPNEGO是這樣做的典型方式,但這基本上是一個kerberos解決方案,聽起來像它不會飛。我想我還沒有聽說過另一種方式。 – DavidA 2013-03-21 05:22:08

+0

如果他們會讓你做kerberos,你可以將AD設置爲kerberosKDC並執行如下操作:http://blog.springsource.org/2009/09/28/spring-security-kerberos/ – DavidA 2013-03-21 05:23:12

回答

1

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

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

http://modntlm.sourceforge.net/ (類似於你可以用它來使用NTLM身份驗證的Kerberos身份驗證使用mod_auth_kerb使用http://modauthkerb.sourceforge.net/

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標頭中發送。

1

您可以將您的用戶名與應用程序URL綁定爲「localhost:port/somename/j_spring_check?j_username =您的用戶名」。

+0

塔倫您的意思是說我們應該按照以下方式將參數傳遞給Spring? '服務器:7001/getusername/SSO/j_spring_check爲j_username = userid' – user75ponic 2013-03-21 07:15:26

相關問題