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);
}
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;
}
}
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;
}
Aggregations