Search in sources :

Example 1 with Name

use of com.microsoft.azure.oidc.common.name.Name in project azure-tools-for-java by Microsoft.

the class SimpeTokenParser method getToken.

@Override
public Token getToken(String value) {
    final String[] parts = value.split("\\.");
    if (parts.length != 3) {
        throw new IllegalStateException(String.format("Incorrect number of parts: Expected 3 got %s", parts.length));
    }
    final JsonNode header = parsePart(decodePart(parts[0]));
    final JsonNode body = parsePart(decodePart(parts[1]));
    final Name keyName = getKeyName(header);
    final Algorithm algorithm = getAlgorithm(header);
    final TimeStamp issuedAt = getIssuedAt(body);
    final TimeStamp notBefore = getNotBefore(body);
    final TimeStamp expiration = getExpiration(body);
    final Issuer issuer = getIssuer(body);
    final ID audience = getAudience(body);
    final ID userID = getUserID(body);
    final List<Email> userEmails = getEmails(body);
    final Payload payload = getPayload(parts[0], parts[1]);
    final Signature signature = getSignature(parts[2]);
    return tokenFactory.createToken(keyName, algorithm, issuedAt, notBefore, expiration, userID, userEmails, issuer, audience, payload, signature);
}
Also used : Email(com.microsoft.azure.oidc.token.email.Email) Issuer(com.microsoft.azure.oidc.common.issuer.Issuer) JsonNode(com.fasterxml.jackson.databind.JsonNode) Algorithm(com.microsoft.azure.oidc.common.algorithm.Algorithm) TimeStamp(com.microsoft.azure.oidc.common.timestamp.TimeStamp) Name(com.microsoft.azure.oidc.common.name.Name) Signature(com.microsoft.azure.oidc.token.signature.Signature) Payload(com.microsoft.azure.oidc.token.payload.Payload) ID(com.microsoft.azure.oidc.common.id.ID)

Example 2 with Name

use of com.microsoft.azure.oidc.common.name.Name in project azure-tools-for-java by Microsoft.

the class SimpleConfigurationLoader method load.

public Configuration load() {
    try {
        final JsonNode wellKnownNode = futureHelper.getResult(wellKnownLoader.loadAsync());
        if (wellKnownNode == null) {
            LOGGER.error("Error loading metadata");
            return null;
        }
        final List<Algorithm> algorithms = wellKnownParser.getAlgorithms(wellKnownNode);
        final EndPoint authenticationEndPoint = wellKnownParser.getAuthenticationEndPoint(wellKnownNode);
        final EndPoint keyStoreEndPoint = wellKnownParser.getKeyStoreEndPoint(wellKnownNode);
        final EndPoint logoutEndPoint = wellKnownParser.getLogoutEndPoint(wellKnownNode);
        final Issuer issuer = wellKnownParser.getIssuer(wellKnownNode);
        final JsonNode keyStoreNode = futureHelper.getResult(keyStoreLoader.loadAsync(keyStoreEndPoint));
        if (keyStoreNode == null) {
            LOGGER.error("Error loading keystore");
            return null;
        }
        final Map<Name, Key> keys = keyStoreParser.getKeys(keyStoreNode);
        return configurationFactory.createConfiguration(algorithms, keys, issuer, authenticationEndPoint, logoutEndPoint);
    } catch (RuntimeException e) {
        LOGGER.error(e.getMessage(), e);
        return null;
    }
}
Also used : Issuer(com.microsoft.azure.oidc.common.issuer.Issuer) JsonNode(com.fasterxml.jackson.databind.JsonNode) EndPoint(com.microsoft.azure.oidc.configuration.endpoint.EndPoint) Algorithm(com.microsoft.azure.oidc.common.algorithm.Algorithm) Key(com.microsoft.azure.oidc.configuration.key.Key) Name(com.microsoft.azure.oidc.common.name.Name)

Example 3 with Name

use of com.microsoft.azure.oidc.common.name.Name in project azure-tools-for-java by Microsoft.

the class SimpleKeyStoreParser method getKeys.

@Override
public Map<Name, Key> getKeys(final JsonNode node) {
    if (node == null) {
        throw new PreconditionException("Required parameter is null");
    }
    final Map<Name, Key> keys = new HashMap<Name, Key>();
    for (final JsonNode n : node.get("keys")) {
        final TimeStamp notBefore = timeStampFactory.createTimeStamp(n.has("nbf") ? n.get("nbf").asLong() : 0L);
        final Name keyName = nameFactory.createKeyName(n.get("kid").asText());
        final Modulus modulus = modulusFactory.createKeyValue(n.get("n").asText());
        final Exponent exponent = exponentFactory.createKeyExponent(n.get("e").asText());
        final Key key = keyFactory.createKey(notBefore, modulus, exponent);
        keys.put(keyName, key);
    }
    return keys;
}
Also used : Exponent(com.microsoft.azure.oidc.configuration.key.exponent.Exponent) HashMap(java.util.HashMap) Modulus(com.microsoft.azure.oidc.configuration.key.modulus.Modulus) JsonNode(com.fasterxml.jackson.databind.JsonNode) Key(com.microsoft.azure.oidc.configuration.key.Key) TimeStamp(com.microsoft.azure.oidc.common.timestamp.TimeStamp) PreconditionException(com.microsoft.azure.oidc.exception.PreconditionException) Name(com.microsoft.azure.oidc.common.name.Name)

Aggregations

JsonNode (com.fasterxml.jackson.databind.JsonNode)3 Name (com.microsoft.azure.oidc.common.name.Name)3 Algorithm (com.microsoft.azure.oidc.common.algorithm.Algorithm)2 Issuer (com.microsoft.azure.oidc.common.issuer.Issuer)2 TimeStamp (com.microsoft.azure.oidc.common.timestamp.TimeStamp)2 Key (com.microsoft.azure.oidc.configuration.key.Key)2 ID (com.microsoft.azure.oidc.common.id.ID)1 EndPoint (com.microsoft.azure.oidc.configuration.endpoint.EndPoint)1 Exponent (com.microsoft.azure.oidc.configuration.key.exponent.Exponent)1 Modulus (com.microsoft.azure.oidc.configuration.key.modulus.Modulus)1 PreconditionException (com.microsoft.azure.oidc.exception.PreconditionException)1 Email (com.microsoft.azure.oidc.token.email.Email)1 Payload (com.microsoft.azure.oidc.token.payload.Payload)1 Signature (com.microsoft.azure.oidc.token.signature.Signature)1 HashMap (java.util.HashMap)1