Nacos LDAP认证中文乱码问题

本文主要讲述了在接入Nacos LDAP认证时遇到的中文乱码问题。通过下载Nacos源码调试,发现在ldapTemplate配置中出现中文乱码。最终,通过在线Unicode转换将中文转换为Unicode编码并配置到application.properties中,成功解决了该问题。

问题现象

最近在接入nacos ldap认证,但是公司的ldap basedn 和 userdn里都带有中文,
直接配置到application.properties里后发现老是报

org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C09044E, comment: AcceptSecurityContext error, data 52e, v2580^@]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C09044E, comment: AcceptSecurityContext error, data 52e, v2580^@]
        at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)
        at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSou

问题排查

下载nacos源码,本地运行,打断点调试,发现ldapTemplate里的配置乱码

git clone  https://github.com/alibaba/nacos.git

ide 打开,执行

mvn install  -Dmaven.test.skip=true

等mvn依赖安装完成后就可以启动,启动之前先把线上报错的配置文件拷贝到
nacos/console/src/main/resources/application.properties

然后在vscode debug配置launch.json文件里添加 添加vm配置, 启用单节点和内嵌存储模式

  {
            "type": "java",
            "name": "Nacos",
            "request": "launch",
            "mainClass": "com.alibaba.nacos.Nacos",
            "projectName": "nacos-console",
            "vmArgs": ["-Dnacos.standalone=true", "-DembeddedStorage=true"]
        },

然后点击运行debug启动 *nacos/console/src/main/Nacos.java 文件

在这里插入图片描述
搜索ldapLogin函数调用位置,打断点,一步一步调试
最后看到ldapTempalte的属性里中文乱码
在这里插入图片描述

问题解决

查找资料寻找解决方案,最快不用改代码的就是使用unicode编码的中文配置

访问 在线unicode转换
选择中文转unicode, 然后配置到application.properties中,重启应用ldap登录成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值