日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java ldap添加用户名密码_java ldap用户密码md5加密

發(fā)布時間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ldap添加用户名密码_java ldap用户密码md5加密 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在這里不過多介紹ldap,因為這樣的文章特別多,這里就簡單直接的記錄這一個問題。

在springboot中通過引入spring-boot-starter-data-ldap,使用LdapTemplate真的挺方便,現(xiàn)在遇到一個問題,添加用戶時,userPasswod在ldap中顯示的是明文密碼,我現(xiàn)在要對這個userPassword加密.

而我們不做任何設(shè)置查看源碼發(fā)現(xiàn)默認(rèn)使用的是simple

1 public class SimpleDirContextAuthenticationStrategy implementsDirContextAuthenticationStrategy {2 private static final String SIMPLE_AUTHENTICATION = "simple";3

4 publicSimpleDirContextAuthenticationStrategy() {5 }6

7 public void setupEnvironment(Hashtableenv, String userDn, String password) {8 env.put("java.naming.security.authentication", "simple");9 env.put("java.naming.security.principal", userDn);10 env.put("java.naming.security.credentials", password);11 }

再看源碼中也有DIGEST-MD5方式加密,但是找了半天不知道怎么配置才能調(diào)用,搜索也沒發(fā)現(xiàn)他有引用這個類的地方。

查看springboot官網(wǎng)有沒有相關(guān)配置,告訴可以配置spring.ldap.base-environment,所以就配置了

spring.ldap.base-environment.java.naming.security.authentication=DIGEST-MD5

最后跟代碼發(fā)現(xiàn)還是會調(diào)用SimpleDirContextAuthenticationStrategy,而且配置的變量又會被重新定義成simple。

1 public class DigestMd5DirContextAuthenticationStrategy implementsDirContextAuthenticationStrategy {2 private static final String DIGEST_MD5_AUTHENTICATION = "DIGEST-MD5";3

4 publicDigestMd5DirContextAuthenticationStrategy() {5 }6

7 publicDirContext processContextAfterCreation(DirContext ctx, String userDn, String password) {8 returnctx;9 }10

11 public void setupEnvironment(Hashtableenv, String userDn, String password) {12 env.put("java.naming.security.authentication", "DIGEST-MD5");13 env.put("java.naming.security.principal", userDn);14 env.put("java.naming.security.credentials", password);15 }16 }

經(jīng)過各種查官網(wǎng),看源碼,都不行,然后就研究ldap,看ldap怎么加密碼的,發(fā)現(xiàn)ldap有一條命令可以返回md5加密碼,然后拿這個加密密碼存入userPasswod,再登錄是可以的,所以只要我知道它是怎么加密的,我也按這種方式加密,ldap就可以解密。

1 [root@alone ~]# slappasswd -h {md5} -s "x1"

2 {MD5}bb+awtoJ7h096/WlGHPsbQ==

ldap md5加密代碼如下:

1   /**

2 * ldap md5加密3 *@paramstr4 *@return

5 *@throwsNoSuchAlgorithmException6 *@throwsUnsupportedEncodingException7 */

8 public static String LdapEncoderByMd5(String psw) throwsNoSuchAlgorithmException, UnsupportedEncodingException {9 MessageDigest md5=MessageDigest.getInstance("MD5");10 BASE64Encoder base64en = newBASE64Encoder();11 String md5psw=base64en.encode(md5.digest(psw.getBytes("utf-8")));12 return "{MD5}"+md5psw;13 }

總結(jié)

以上是生活随笔為你收集整理的java ldap添加用户名密码_java ldap用户密码md5加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。