資源簡介
java JNDI方式修改AD域密碼 免ssl驗證方式修改AD域密碼 LDAP SSL 證書 javassl 很實用的一段代碼,免去了復雜的證書操作過程。

代碼片段和文件信息
/**
?*?本文章是針對java?JNDI方式操作ldap服務器。
?*?這里給出一個關鍵的片段,通過這段代碼獲取的Context是可以免證書的進行操作遠程AD域的我之前就是通過證書方式的,一大堆復雜的操作導出什么密鑰庫之類的。且證書1年就失效了還 要企業根證書才行,很多限制!后來花了很多心思才找到這個方法。
? DummySSLSocketFactory?這個類我放外面好了方便猿友們導出,這段代碼就是獲取連接,我就沒管那么多了直接貼了方法上來。
?*?獲取AD上下文對象
?*?@param?res
?*?@return
?*/
public?final?static?LDAPDirContext?getContext(ResourceBean?res){
LDAPDirContext?context?=?null;
try?{
System.out.println(String.valueOf(res.getExpand(“keystore“)));
// System.setProperty(“javax.net.ssl.trustStore“?“/Windows/aaa.keystore“);//String.valueOf(res.getExpand(“keystore“)));
// System.setProperty(“javax.net.ssl.trustStorePassword“?“changeit“);
Properties?mEnv?=?new?Properties();
mEnv.put(Context.AUTHORITATIVE?“true“);
mEnv.put(Context.SECURITY_PROTOCOL?“ssl“);
mEnv.put(Context.INITIAL_CONTEXT_FACTORY“com.sun.jndi.ldap.LdapCtxFactory“);
mEnv.put(Context.PROVIDER_URL?res.getExpand(“url“));//
mEnv.put(Context.SECURITY_AUTHENTICATION?“simple“);
mEnv.put(Context.SECURITY_PRINCIPAL?res.getUserName());//?administrator@test.com
mEnv.put(Context.SECURITY_CREDENTIALS?res.getPassWord());
//關鍵代碼,注意對應的DummySSLSocketFactory這個類的包路徑要正確,
??????? mEnv.put(“java.naming.ldap.factory.socket“?“org.utils.ad.DummySSLSocketFactory“);
context?=?new?LDAPDirContext(mEnv);
}?catch?(Exception?e)?{
e.printStackTrace();
context?=?null;
System.out.println(“AD域認證失敗!“);
}
return?context;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-27?18:08??ad\
?????目錄???????????0??2015-09-25?16:03??ad\.svn\
?????文件?????????483??2015-09-25?16:03??ad\.svn\all-wcprops
?????文件?????????615??2015-09-25?16:03??ad\.svn\entries
?????目錄???????????0??2015-09-25?16:03??ad\.svn\prop-ba
?????目錄???????????0??2015-09-25?16:03??ad\.svn\props\
?????目錄???????????0??2015-09-25?16:03??ad\.svn\text-ba
?????文件????????1949??2015-09-25?16:03??ad\.svn\text-ba
?????文件?????????517??2015-09-25?16:03??ad\.svn\text-ba
?????目錄???????????0??2015-09-25?16:03??ad\.svn\tmp\
?????目錄???????????0??2015-09-25?16:03??ad\.svn\tmp\prop-ba
?????目錄???????????0??2015-09-25?16:03??ad\.svn\tmp\props\
?????目錄???????????0??2015-09-25?16:03??ad\.svn\tmp\text-ba
?????文件????????1922??2016-01-27?18:08??ad\DummySSLSocketFactory.java
?????目錄???????????0??2016-01-27?18:08??__MACOSX\
?????目錄???????????0??2016-01-27?18:08??__MACOSX\ad\
?????文件?????????171??2016-01-27?18:08??__MACOSX\ad\._DummySSLSocketFactory.java
?????文件?????????490??2016-01-27?18:08??ad\DummyTrustManager.java
?????文件?????????171??2016-01-27?18:08??__MACOSX\ad\._DummyTrustManager.java
?????文件????????1833??2016-01-27?18:07??鍏抽敭浠g爜.java
?????文件?????????171??2016-01-27?18:07??__MACOSX\._鍏抽敭浠g爜.java
- 上一篇:Java寫的吃豆豆游戲源代碼
- 下一篇:SL275lab 練習答案
評論
共有 條評論