我正在使用自定义类扩展的JBOSS 4.2.3
和UsernamePasswordLoginModule
类,它会覆盖方法validatePassword
。此方法有两个参数inputPassword
和expectedPassword
。客户端使用Base64 encoded loginId:password
将base64
发送到服务器并进行服务器解码。服务器使用iso-8859-1
解码凭证(我在在线转换工具上查看重音字符后验证,这相当于iso输出而不是UTF-8)。由于iso不支持国际字符,我需要使用UTF-8,但如果我们正在进行Base64 decode
,我没有弄明白这个iso编码的位置。我搜索了Base64
解码方法但未指定字符集。
我的疑问是,我们是否有任何机制在上述场景中设置编码。要求客户端将发送UTF-8 data
,我需要使用UTF8
进行解码。提前谢谢。
答案 0 :(得分:0)
字符串的Base64编码和解码分为两个步骤:
[编码] 字符串 - > byte [] - >字符串(base64编码)
[解码]字符串(base64编码) - > byte [] - >串强>
需要在粗体中突出显示的步骤中设置字符编码。
对于那意味着要做的编码:
String s;
byte[] bytes = s.getBytes("UTF-8");
对于解码,它将是:
byte[] bytes;
String s = new String(bytes, "UTF-8");