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

com.github.robertomanfreda.java.jwt.core.ClaimSetBuilder Maven / Gradle / Ivy

package com.github.robertomanfreda.java.jwt.core;

import com.nimbusds.jwt.JWTClaimsSet;

import java.util.Date;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;

public class ClaimSetBuilder {

    private ClaimSetBuilder() {
    }

    static JWTClaimsSet build(String audience, Map claims, long ttlSeconds, String issuer) {
        long now = System.currentTimeMillis();
        Date issuedAt = new Date(now);
        Date expiration = new Date(now + TimeUnit.SECONDS.toMillis(ttlSeconds));

        AtomicReference jwtClaimsSet = new AtomicReference<>(new JWTClaimsSet.Builder().build());

        claims.forEach((key, value) ->
                jwtClaimsSet.set(new JWTClaimsSet.Builder(jwtClaimsSet.get()).claim(key, value).build())
        );

        return new JWTClaimsSet.Builder(jwtClaimsSet.get())
                .audience(audience)
                .expirationTime(expiration)
                .issuer(issuer)
                .issueTime(issuedAt)
                .jwtID(String.valueOf(UUID.randomUUID()))
                .notBeforeTime(issuedAt)
                .build();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy