Search in sources :

Example 6 with NToken

use of com.yahoo.vespa.athenz.api.NToken in project vespa by vespa-engine.

the class NTokenValidatorTest method createNToken.

private static NToken createNToken(AthenzIdentity identity, Instant issueTime, PrivateKey privateKey, String keyId) {
    PrincipalToken token = new PrincipalToken.Builder("U1", identity.getDomain().getName(), identity.getName()).keyId(keyId).salt("1234").host("host").ip("1.2.3.4").issueTime(issueTime.getEpochSecond()).expirationWindow(1000).build();
    token.sign(privateKey);
    return new NToken(token.getSignedToken());
}
Also used : NToken(com.yahoo.vespa.athenz.api.NToken) PrincipalToken(com.yahoo.athenz.auth.token.PrincipalToken)

Example 7 with NToken

use of com.yahoo.vespa.athenz.api.NToken in project vespa by vespa-engine.

the class NTokenValidatorTest method valid_token_is_accepted.

@Test
public void valid_token_is_accepted() throws NoSuchAlgorithmException, InvalidTokenException {
    NTokenValidator validator = new NTokenValidator(createKeystore());
    NToken token = createNToken(IDENTITY, Instant.now(), TRUSTED_KEY.getPrivate(), "0");
    AthenzPrincipal principal = validator.validate(token);
    assertEquals("user.myuser", principal.getIdentity().getFullName());
}
Also used : NToken(com.yahoo.vespa.athenz.api.NToken) AthenzPrincipal(com.yahoo.vespa.athenz.api.AthenzPrincipal) Test(org.junit.Test)

Example 8 with NToken

use of com.yahoo.vespa.athenz.api.NToken in project vespa by vespa-engine.

the class NTokenValidatorTest method invalid_signature_is_not_accepted.

@Test
public void invalid_signature_is_not_accepted() throws InvalidTokenException {
    NTokenValidator validator = new NTokenValidator(createKeystore());
    NToken token = createNToken(IDENTITY, Instant.now(), UNKNOWN_KEY.getPrivate(), "0");
    exceptionRule.expect(InvalidTokenException.class);
    exceptionRule.expectMessage("NToken is expired or has invalid signature");
    validator.validate(token);
}
Also used : NToken(com.yahoo.vespa.athenz.api.NToken) Test(org.junit.Test)

Example 9 with NToken

use of com.yahoo.vespa.athenz.api.NToken in project vespa by vespa-engine.

the class NTokenValidatorTest method expired_token_is_not_accepted.

@Test
public void expired_token_is_not_accepted() throws InvalidTokenException {
    NTokenValidator validator = new NTokenValidator(createKeystore());
    NToken token = createNToken(IDENTITY, Instant.ofEpochMilli(1234), /*long time ago*/
    TRUSTED_KEY.getPrivate(), "0");
    exceptionRule.expect(InvalidTokenException.class);
    exceptionRule.expectMessage("NToken is expired or has invalid signature");
    validator.validate(token);
}
Also used : NToken(com.yahoo.vespa.athenz.api.NToken) Test(org.junit.Test)

Example 10 with NToken

use of com.yahoo.vespa.athenz.api.NToken in project vespa by vespa-engine.

the class NTokenValidatorTest method unknown_keyId_is_not_accepted.

@Test
public void unknown_keyId_is_not_accepted() throws InvalidTokenException {
    NTokenValidator validator = new NTokenValidator(createKeystore());
    NToken token = createNToken(IDENTITY, Instant.now(), TRUSTED_KEY.getPrivate(), "unknown-key-id");
    exceptionRule.expect(InvalidTokenException.class);
    exceptionRule.expectMessage("NToken has an unknown keyId");
    validator.validate(token);
}
Also used : NToken(com.yahoo.vespa.athenz.api.NToken) Test(org.junit.Test)

Aggregations

NToken (com.yahoo.vespa.athenz.api.NToken)12 Test (org.junit.Test)7 AthenzPrincipal (com.yahoo.vespa.athenz.api.AthenzPrincipal)4 PrincipalToken (com.yahoo.athenz.auth.token.PrincipalToken)2 ApplicationId (com.yahoo.config.provision.ApplicationId)2 AthenzIdentity (com.yahoo.vespa.athenz.api.AthenzIdentity)2 AthenzUser (com.yahoo.vespa.athenz.api.AthenzUser)2 Tenant (com.yahoo.vespa.hosted.controller.api.Tenant)2 TenantId (com.yahoo.vespa.hosted.controller.api.identifiers.TenantId)2 Record (com.yahoo.vespa.hosted.controller.api.integration.dns.Record)2 Optional (java.util.Optional)2 ImmutableList (com.google.common.collect.ImmutableList)1 Pair (com.yahoo.collections.Pair)1 Version (com.yahoo.component.Version)1 DeploymentSpec (com.yahoo.config.application.api.DeploymentSpec)1 ValidationId (com.yahoo.config.application.api.ValidationId)1 Environment (com.yahoo.config.provision.Environment)1 TenantName (com.yahoo.config.provision.TenantName)1 Inspector (com.yahoo.slime.Inspector)1 AthenzDomain (com.yahoo.vespa.athenz.api.AthenzDomain)1