Sending JWT Token in the body of response Java Spring

Hamza :

I send the token of JWT in Header, but the client need it in the body of the response, how can I put it in the response :

    @Override
    protected void successfulAuthentication(
            HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult)
            throws IOException, ServletException {

User springUser = (User) authResult.getPrincipal(); String jwt = Jwts.builder() .setSubject(springUser.getUsername()) .setExpiration(new Date(System.currentTimeMillis()+SecurityConstants.EXPIRATION_TIME)) .signWith(SignatureAlgorithm.HS256, SecurityConstants.SECRET) .claim("roles",springUser.getAuthorities()) .compact(); response.addHeader(SecurityConstants.HEADER_STRING, SecurityConstants.TOKEN_PREFIX+jwt); }

I need to put the token in the response

Mr. Skip :

If I understand you properly you just need to create a response body

response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(
            "{\"" + SecurityConstants.HEADER_STRING + "\":\"" + SecurityConstants.TOKEN_PREFIX+jwt + "\"}"
    );

Take a look at How do you return a JSON object from a Java Servlet

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=115968&siteId=1