从 JBoss 4 升级到 JBoss 5 后,我注意到最烦人的回归。它会截断 base64 cookie 值的尾随等号 ('=')。
我花了很多时间才明白问题不是我的代码,而是 JBoss',我用谷歌搜索了它,发现这是一个已知问题。
建议的解决方法是计算字符串长度并用尾随等号填充它(长度为 4 的重数)。
由于我们的应用程序可以在多个应用程序服务器(例如 WebLogic、WebSpehere)上运行,因此我非常不愿意为这个版本的 JBoss 添加这段代码。
有人遇到过这个吗?你能建议一个更聪明的解决方法吗?
编辑:感谢@skaffman,我理解了我的问题,我不应该首先使用 base64 作为 cookie 字符串。在 base 64 上有一个变体,称为base64 url ,应该用于此类字符串(cookies、urls...)。例如,库 Apache 编解码器在其 base 64 实现中支持此变体。