1. 程式人生 > >Java 集成域登陸

Java 集成域登陸

只需要 cifs tro ppi tails 登陸 com XML csv

參考:

1. JAVA中使用jcifs集成AD域用戶認證

2. https://liaosy.iteye.com/blog/1887092

實戰開始

1.根據參考1中的jar包,下載後放入lib,

a. 加入buildpath

技術分享圖片

b 加入 deployment assembly

技術分享圖片

2. web.xml 中加入:

    <filter>
        <filter-name>NtlmHttpFilter</filter-name>
        <filter-class>jcifs.http.NtlmHttpFilter</
filter-class> <init-param> <param-name>jcifs.http.domainController</param-name> <param-value>10.122.74.146</param-value> </init-param> <init-param> <param-name>jcifs.smb.client.domain</
param-name> <param-value>csvw.com</param-value> </init-param> <init-param> <param-name>jcifs.smb.lmCompatibility</param-name> <param-value>0</param-value> </init-param> <
init-param> <param-name>jcifs.smb.client.useExtenededSecurity</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>jcifs.smb.client.soTimeout</param-name> <param-value>35000</param-value> </init-param> </filter> <filter-mapping> <filter-name>NtlmHttpFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

3 如果你的開發機不是win7 請跳過這一步。因為我的虛機是win7 ,因此需要改下。

JCIFS的HttpFilter並不支持NTLM2協議,而當客戶端是WIN7系統時,默認采用的是NTLM2協議。

  如果已經使用JCIFS 作為解決方案, 只需要暫時解決Win7 等系統的問題的話。如何臨時解決以上問題。

  解決方法是增加或修改註冊表的以下信息:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa中新建一個dword值LMCompatibilityLevel,值為0,即可解決.

參考: https://blog.csdn.net/oscar999/article/details/21372227?locationNum=8

.技術分享圖片

4.運行起來看看,跳出來了(因為我測試機不是域登陸,所以會跳出來,如果你是域登陸的機器,應該就不會跳出來了,會直接進去):

技術分享圖片

5. 在登陸頁面的方法裏加上代碼,打印出來了,成功!

技術分享圖片

Java 集成域登陸