@Cacheable("plugin-payload") @SuppressWarnings("unchecked") public JwtPluginPayload getPluginPayload(String jwtToken) { LinkedHashMap<String, Object> payloadMap = getPayloadMap(jwtToken); String topic = Optional.ofNullable((String)payloadMap.get(JwtPluginPayload.TOPIC)) .orElseThrow(() -> new IllegalArgumentException("Not a plugin payload")); JwtPluginPayload.JwtPluginPayloadBuilder jwtPluginPayloadBuilder = new JwtPluginPayload.JwtPluginPayloadBuilder() .withTopic(topic); Optional.ofNullable((ArrayList<Integer>) payloadMap.get(JwtUserPayload.ACTIONS)) .ifPresent(actions -> jwtPluginPayloadBuilder.withActions(new HashSet<>(actions))); return (JwtPluginPayload) getJwtPayload(jwtPluginPayloadBuilder, payloadMap); }
JwtPluginPayload refreshPayload = JwtPluginPayload.newBuilder().withPayload(payload) .buildPayload();
/** * Generates a JWT plugin token containing all needed claims. These properties are taken from the specified * JwtUserPayload object. * * @param payload the payload entity with which the token will be generated * @return the JWT plugin token */ public String generateToken(JwtPluginPayload payload, TokenType tokenType, boolean useExpiration) { long maxAge = tokenType.equals(TokenType.ACCESS) ? accessTokenMaxAge : refreshTokenMaxAge; Date expiration = useExpiration && payload.getExpiration() != null ? payload.getExpiration() : timestampService.getDate(System.currentTimeMillis() + maxAge); JwtPluginPayload generatedPayload = (JwtPluginPayload) JwtPluginPayload.newBuilder() .withPayload(payload) .withExpirationDate(expiration) .withTokenType(tokenType.getId()) .buildPayload(); Map<String, Object> jwtMap = new HashMap<>(); jwtMap.put(JwtUserPayload.JWT_CLAIM_KEY, generatedPayload); Claims claims = Jwts.claims(jwtMap); return Jwts.builder() .setClaims(claims) .signWith(SignatureAlgorithm.HS256, jwtSecretService.getJwtSecret()) .compact(); }
public static JwtPluginPayloadBuilder newBuilder() { return new JwtPluginPayloadBuilder(); }
public JwtPluginPayloadBuilder withPayload(JwtPluginPayload payload) { this.actions = payload.getActions(); this.topic = payload.getTopic(); this.withExpirationDate(payload.getExpiration()); return this; }