package be.mentoringsystems.merke.security; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.DecodedJWT; import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; /** * * @author anthonyarents */ public final class JWSHelper { private static final String SECRET = "F6deJ;xShXD+juV,%dtt}3/z:pZ6-H"; public static final String TOKEN_PREFIX = "Bearer "; public static final String HEADER_NAME = "Authorization"; private JWSHelper() { // } public static String getJwsSubject(final HttpServletRequest hsr) { String subject = null; String authorization = hsr.getHeader(HEADER_NAME); if (authorization == null) { authorization = hsr.getParameter(HEADER_NAME); } if (authorization != null && authorization.startsWith(TOKEN_PREFIX)) { DecodedJWT decoded = JWT.require(Algorithm.HMAC512(SECRET.getBytes(StandardCharsets.UTF_8))).build().verify(authorization.replace(TOKEN_PREFIX, "")); subject = decoded.getSubject(); } return subject; } public static String generateJwsWithSubject(final String subject) { return JWT.create().withSubject(subject).sign(Algorithm.HMAC512(SECRET.getBytes(StandardCharsets.UTF_8))); } }