com.auth0.jwt.impl.PayloadImpl Maven / Gradle / Ivy
Show all versions of java-jwt Show documentation
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.util.*;
import static com.auth0.jwt.impl.JsonNodeClaim.extractClaim;
/**
* Decoder of string JSON Web Tokens into their POJO representations.
*
* @see Payload
*
* This class is thread-safe.
*/
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 Date expiresAt;
private final Date notBefore;
private final Date issuedAt;
private final String jwtId;
private final Map tree;
private final ObjectReader objectReader;
PayloadImpl(String issuer, String subject, List audience, Date expiresAt, Date notBefore, Date 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;
}
@Override
public Date getNotBefore() {
return notBefore;
}
@Override
public Date getIssuedAt() {
return issuedAt;
}
@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);
}
}