All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.auth0.jwt.impl.PayloadImpl Maven / Gradle / Ivy

There is a newer version: 4.4.0
Show newest version
package com.auth0.jwt.impl;

import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.Payload;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectReader;

import java.io.Serializable;
import java.time.Instant;
import java.util.*;

import static com.auth0.jwt.impl.JsonNodeClaim.extractClaim;

/**
 * Decoder of string JSON Web Tokens into their POJO representations.
 * 

* This class is thread-safe. * * @see Payload */ class PayloadImpl implements Payload, Serializable { private static final long serialVersionUID = 1659021498824562311L; private final String issuer; private final String subject; private final List audience; private final Instant expiresAt; private final Instant notBefore; private final Instant issuedAt; private final String jwtId; private final Map tree; private final ObjectReader objectReader; PayloadImpl( String issuer, String subject, List audience, Instant expiresAt, Instant notBefore, Instant issuedAt, String jwtId, Map tree, ObjectReader objectReader ) { this.issuer = issuer; this.subject = subject; this.audience = audience != null ? Collections.unmodifiableList(audience) : null; this.expiresAt = expiresAt; this.notBefore = notBefore; this.issuedAt = issuedAt; this.jwtId = jwtId; this.tree = tree != null ? Collections.unmodifiableMap(tree) : Collections.emptyMap(); this.objectReader = objectReader; } Map getTree() { return tree; } @Override public String getIssuer() { return issuer; } @Override public String getSubject() { return subject; } @Override public List getAudience() { return audience; } @Override public Date getExpiresAt() { return (expiresAt != null) ? Date.from(expiresAt) : null; } @Override public Instant getExpiresAtAsInstant() { return expiresAt; } @Override public Date getIssuedAt() { return (issuedAt != null) ? Date.from(issuedAt) : null; } @Override public Instant getIssuedAtAsInstant() { return issuedAt; } @Override public Date getNotBefore() { return (notBefore != null) ? Date.from(notBefore) : null; } @Override public Instant getNotBeforeAsInstant() { return notBefore; } @Override public String getId() { return jwtId; } @Override public Claim getClaim(String name) { return extractClaim(name, tree, objectReader); } @Override public Map getClaims() { Map claims = new HashMap<>(tree.size() * 2); for (String name : tree.keySet()) { claims.put(name, extractClaim(name, tree, objectReader)); } return Collections.unmodifiableMap(claims); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy