Hamza:
Puedo enviar la señal de JWT en la cabecera, pero el cliente lo necesita en el cuerpo de la respuesta, ¿cómo puedo ponerlo en la respuesta:
@ Override
protegido successfulAuthentication void (
HttpServletRequest solicitud, HttpServletResponse respuesta, cadena FilterChain, Autenticación authResult)
lanza 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);
}
Tengo que poner el signo en la respuesta
El Sr. Skip:
Si he entendido correctamente sólo tiene que crear un cuerpo de la respuesta
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(
"{\"" + SecurityConstants.HEADER_STRING + "\":\"" + SecurityConstants.TOKEN_PREFIX+jwt + "\"}"
);
Echar un vistazo a ¿Cómo se devuelve un objeto JSON desde un servlet de Java