java - How to add HTTP Response Header by a value of Response Payload in Spring Boot
问题描述
I want to set the header of HttpServletResponse
in filter
or something similar after the Response is generated in my spring boot project. In filter, I can do something similar:
((HttpServletResponse)servletResponse).addHeader("test","value");
fc.doFilter(request, servletResponse);
But the problem is that my header value is generated from the response body(payload) itself, so I have to use the content of ServletResponse
payload to add it to the header. How can I do it?
I could do it on controller level but I don't want to do it manually for all the responses.
解决方案
You can make use of this code
String authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
token = authorizationHeader.substring(7);
userName = jwtUtil.extractUsername(token);
request.setAttribute("userid",userName);
}
so now this code generates a token where you have userid that gives userName along with the token
推荐阅读
- machine-learning - 如何添加一个热向量?
- ios - 一切都被正确解析,但一个元素总是拉空,即使它在 Json 内?斯威夫特 4.1
- python - 如何在 Keras 中创建一个依赖于纪元数的损失函数参数?
- javascript - 使用 setCustomValidity() 时遇到特定于 IE 的 html5 验证问题
- emacs - 在 Emacs 中使用 Coq 时,如何在 ProofGeneral 中自定义命令和战术的颜色?
- react-native - React Native - 在视图边框上渲染阴影而不是在内容上
- python - 为什么我的枚举类型代码返回“对象没有属性”?
- android - 使用 adb shell 从 android sdcard 获取文件的 shell 脚本
- sage - Sage 数学数值评估
- php - 自动更改空格和句点以强调