1.问题
在将生成的token放入头信息中,报如下错误
originalResponse.getHeaders().add(JWTConstant.H5_CLIENT_TOKEN, token);
错误
java.lang.IllegalArgumentException: a header value must not end with '\r' or '\n':eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJLUWo1UGthQS9FZU4vUnQzTEFvQXJOTHhLTFBrY0lzeklPNFV5cnlKaGtaOGg2YkVRaEFNeGIzU0YxaUc2S1pPIiwiaXNzIjoieGlheXUiLCJzdWIiOiJ4aWF5dS11c2VyIiwiYXVkIjoieGlheXUtdXNlciIsImlhdCI6Ij\r\nIwMjAwNzA1VDAwMzEwMS43MTYrMDgwMCIsIm5iZiI6IjIwMjAwNzA1VDAw\r\nMzEwMS43MTYrMDgwMCIsImV4cCI6IjIwMjAwNzA1VDAwMzEwNS4zMTYrMDgwMCJ9.a91ea52fea38bdd343bde3488ed35d9c0ad8e522c22d264b3d88c287d144aff4
\r\n是我添加上去的
token在生成过程中,使用了Base64进行编码,java原生的base64编码按照规范会在64个字符后自动加rn,就导致了这个问题。
解决方法:
a. 将生成后包含的rn字符串去掉
b. 换成Apache commons 家族中的common codec工具进行base64编解码,我采用的是这种方案。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。