升级Wildfly 26至28后出现java.util.Base64解码异常问题
Wildfly 26升级至28后java.util.Base64解码行为异常
将Wildfly从26版本升级到28版本后,发现java.util.Base64的解码行为发生了变化,且未切换项目或更换Java SDK(使用的是OpenJDK 11.0.19)。
相关代码如下:
var tokenString = "IVHDn15NMWdvJi3CpyREPEUlRCJBLmUldXEwJyY3QmI+dXR3JERjMWlyKSFPTDRCS3R1VzU8T1IzaDJMa15+diVzXkQ8cEI7OTBmfCstcHR1TFxRL3ViLGVsfkReKz95MGEvSsKnMmJSMHlsPi5iKD5WXklsdmIiPHBeUCtreHFfUzUiKiVpdzI1ImFlVS4+Rip4JVF0I21DbT9kMsKnVzYtLEpNRS06Uy5rNjZhJcKnUmo4bVXCpzte"; var token = tokenString.getBytes(StandardCharsets.UTF_8); String tokenDecoded = new String(Base64.getDecoder().decode(token));
在Wildfly 26中调试得到的解码结果:
!Qß^M1go&-§$D<E%D"A.e%uq0'&7Bb>utw$Dc1ir)!OL4BKtuW5<OR3h2Lk^~v%s^D<pB;90f|+-ptuL\Q/ub,el~D^+?y0a/J§2bR0yl>.b(>V^Ilvb"<p^P+kxq_S5"*%iw25"aeU.>F*x%Qt#mCm?d2§W6-,JME-:S.k66a%§Rj8mU§;^
Wildfly 28中的解码结果则出现异常:
!Qß^M1go&-§$D<E%D"A.e%uq0'&7Bb>utw$Dc1ir)!OL4BKtuW5<OR3h2Lk^~v%s^D<pB;90f|+-ptuL\Q/ub,el~D^+?y0a/J§2bR0yl>.b(>V^Ilvb"<p^P+kxq_S5"*%iw25"aeU.>F*x%Qt#mCm?d2§W6-,JME-:S.k66a%§Rj8mU§;
在Wildfly 28中对异常的tokenDecoded重新编码:
var encoded = Base64.getEncoder().encodeToString(tokenDecoded.getBytes(StandardCharsets.UTF_8));
得到的encoded与原tokenString不相等。
不清楚Base64解码行为变化的原因,是否存在遗漏的Wildfly配置?
P.S.:token为随机生成的长字符串,抱歉带来阅读不便。
编辑:也考虑过是否有其他非Wildfly升级的因素,但代码库未做任何修改,暂时找不到差异来源。
内容的提问来源于stack exchange,提问作者OhJohnny
相关产品推荐
相关产品推荐

