![](/img/trans.png)
[英]How can I login into web application with SAML using system credentials in java
[英]How to automatically login to the site using system credentials?
我需要為Intranet用戶開發一個Web應用程序。 我不希望他們每次訪問網站時都輸入登錄憑據。 它應該從系統用戶名和密碼自動加載。 即如果他們有一個有效的系統用戶名和密碼,他們應該能夠登錄到該應用程序。 我正在使用Java。 如何滿足這個要求?
您可以使用華夫餅干和COM4J來解決此問題。 您需要記住的是,華夫餅干僅適用於Windows憑據。 您可以在UI端代碼中使用waffle api進行自動登錄。 如果要在java端編寫自動登錄代碼,COM4J api非常有用。
SSO(單點登錄)可用於使用系統憑據自動登錄。 Waffle用於在活動目錄上實現SSO。 它在本地計算機和活動目錄之間進行協商。 但是,一旦用戶通過身份驗證,就無法使用Waffle檢索所有參數。 因為可以使用Com4j 。
您正在尋找的是Windows集成身份驗證。 為了能夠實現它,您的服務器需要支持針對Active Directory的身份驗證(使用Kerberos),並配置為使用WWW-Authenticate:NTLM或Negotiate標頭響應來自瀏覽器的未經身份驗證的請求。
我不知道如何做到這一點,不知道你正在使用什么服務器平台。 但假設您的平台支持JAAS,這里有一篇博文,介紹了配置它的一些基礎知識 - http://webmoli.com/2009/08/29/single-sign-on-in-java-platform/
如果它特定於“Windows”,則可以使用NTLM身份驗證。 例如http://davenport.sourceforge.net/ntlm.html
我不確定這是否有幫助,但你可以看看如何使用HTTP客戶端http://hc.apache.org/httpclient-3.x/authentication.html#NTLM
NTLM憑據可以傳遞到支持SPNEGO(Kerberos)或NTLM身份驗證(兩者都構成Windows本地身份驗證)的服務器。 不幸的是,默認情況下,很多此類服務器都不支持此功能。 Microsoft IIS就是這樣一種服務器,它支持您需要的身份驗證模式。
據我所知,在Java Web應用程序中實現這一點,將要求您在應用程序服務器上驗證對WNA的支持。 例如,WebLogic Server確實在某種程度上支持這一點,但需要Microsoft IIS Web服務器來支持它。
Single Sign On解決方案還可能支持針對Microsoft Active Directory的憑據驗證,但無縫集成的性質可能因產品而異。
此外,使用中的瀏覽器也很重要。 自IE 5以及某些版本的Firefox以來,WNA可用。 自5版以來,它似乎在Google Chrome中可用 。 NTLM身份驗證最初也是在Opera 9中引入的。
使用簡單的ftpclient(apache提供一個)來復制文件。 它會提供更好的性能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.