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

no.nav.common.test.auth.AuthTestUtils Maven / Gradle / Ivy

package no.nav.common.test.auth;

import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.PlainJWT;
import no.nav.common.auth.context.AuthContext;
import no.nav.common.auth.context.UserRole;

import java.util.Map;

public class AuthTestUtils {

    public final static String TEST_AUDIENCE = "test-audience";

    public final static String TEST_ISSUER = "https://testIssuer.test";

    public static AuthContext createAuthContext(UserRole role, String subject) {
        JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()
                .subject(subject)
                .audience(TEST_AUDIENCE)
                .issuer(TEST_ISSUER)
                .build();

        return new AuthContext(role, new PlainJWT(claimsSet));
    }

    public static AuthContext createAuthContext(UserRole role, Map claims) {
        if (claims.get("sub") == null) {
            throw new IllegalArgumentException("The claim 'sub' is missing");
        }

        JWTClaimsSet.Builder claimsSetBuilder = new JWTClaimsSet.Builder();
        claims.forEach(claimsSetBuilder::claim);

        if (claims.get("aud") == null) {
            claimsSetBuilder.claim("aud", TEST_AUDIENCE);
        }

        if (claims.get("iss") == null) {
            claimsSetBuilder.claim("iss", TEST_ISSUER);
        }

        JWTClaimsSet claimsSet = claimsSetBuilder.build();

        return new AuthContext(role, new PlainJWT(claimsSet));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy