jwtauthenticationentrypointconfig自定义消息从不工作

gijlo24d  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(192)

当我遇到401错误时,我试图生成一条自定义消息,但消息从未进入响应。你能告诉我为什么会这样吗?
这是我经常得到的回应。“message”字段中的值始终是空字符串

{
    "timestamp": "2021-01-17T06:56:27.622+00:00",
    "status": 401,
    "error": "Unauthorized",
    "message": "",
    "path": "/api/example"
}

这是代码:

@Component
public class JwtAuthenticationEntryPointConfig implements AuthenticationEntryPoint, Serializable {

    private static final long serialVersionUID = -7858869558953243875L;

    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response,
            AuthenticationException authException) throws IOException, ServletException {
        String message = response.getHeader("description")!=null ? response.getHeader("description") : "Unauthorized";
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, message);
    }

}

标题:当我得到代币箱时添加的描述已过期

if (requestTokenHeader != null && requestTokenHeader.startsWith("Bearer ")) {
    jwtToken = requestTokenHeader.substring(7);
    tokenReverse = new StringBuilder(jwtToken).reverse().toString();
    try {
        username = jwtTokenUtil.getUsernameFromToken(tokenReverse);
    } catch (IllegalArgumentException e) {
        logger.info("Unable to get JWT Token");
    } catch (ExpiredJwtException e) {
        HttpServletResponse res = (HttpServletResponse) response;
        res.addHeader("description", "Token has expired");     //HERE
        logger.info("JWT Token has expired");
    }
} else {
    logger.info("JWT Token does not begin with Bearer String");
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题