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

net.aholbrook.paseto.claims.ForAudience Maven / Gradle / Ivy

package net.aholbrook.paseto.claims;

import net.aholbrook.paseto.exception.claims.IncorrectAudienceException;
import net.aholbrook.paseto.exception.claims.MissingClaimException;
import net.aholbrook.paseto.service.Token;
import net.aholbrook.paseto.util.StringUtils;

public class ForAudience implements Claim {
	public final static String NAME = "FOR_AUDIENCE";

	private final String audience;

	/**
	 * Verifies that the token Audience (aud) claim matches the given value.
	 *
	 * @param audience The expected audience for the token.
	 */
	public ForAudience(String audience) {
		this.audience = StringUtils.ntes(audience);
	}

	@Override
	public String name() {
		return NAME;
	}

	@Override
	public void check(Token token, VerificationContext context) {
		if (StringUtils.isEmpty(token.getAudience())) {
			throw new MissingClaimException(Token.CLAIM_AUDIENCE, NAME, token);
		}

		if (!audience.equals(token.getAudience())) {
			throw new IncorrectAudienceException(audience, token.getAudience(), NAME, token);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy