钉钉回调一直报错
java.lang.IllegalArgumentException: Last encoded character (before the paddings if any) is a valid base 64 alphabet but not a possible value. Expected the discarded bits to be zero.
at org.apache.commons.codec.binary.Base64.validateCharacter(Base64.java:803) ~[commons-codec-1.14.jar!/:1.14]
at org.apache.commons.codec.binary.Base64.decode(Base64.java:482) ~[commons-codec-1.14.jar!/:1.14]
at org.apache.commons.codec.binary.BaseNCodec.decode(BaseNCodec.java:481) ~[commons-codec-1.14.jar!/:1.14]
at org.apache.commons.codec.binary.BaseNCodec.decode(BaseNCodec.java:465) ~[commons-codec-1.14.jar!/:1.14]
at org.apache.commons.codec.binary.Base64.decodeBase64(Base64.java:699) ~[commons-codec-1.14.jar!/:1.14]
at com.dingtalk.oapi.lib.aes.DingTalkEncryptor.<init>(DingTalkEncryptor.java:61) ~[lippi-oapi-encrpt-0.0.1.jar!/:?]
之前都是调试OK放上线的,想来想去最近只有升级了springboot,从2.1.6升级到了2.3.0,然后回滚版本果然解析成功不在报错,就发现是base64的包从commons-codec-1.11升级到了commons-codec-1.13,加入了一段验证代码导致的.
然后在pom中单独引入commons-codec-1.11 问题解决