use of com.yahoo.athenz.auth.KeyStore in project athenz by yahoo.
the class PrincipalAuthorityTest method testPrincipalAuthorityAuthenticateIlligal.
@Test
public void testPrincipalAuthorityAuthenticateIlligal() throws IOException, CryptoException {
PrincipalAuthority serviceAuthority = new PrincipalAuthority();
KeyStore keyStore = Mockito.mock(KeyStore.class);
serviceAuthority.setKeyStore(keyStore);
String t = "v=S1;d=domain;n=hoge;bs=aaaa;s=signatur";
Principal check = serviceAuthority.authenticate(t, "10", "10", null);
assertNull(check);
}
use of com.yahoo.athenz.auth.KeyStore in project athenz by yahoo.
the class PrincipalAuthorityTest method testValidateAuthorizedIlligalForAuthorizedService.
@Test
public void testValidateAuthorizedIlligalForAuthorizedService() throws IOException {
PrincipalAuthority serviceAuthority = new PrincipalAuthority();
KeyStore keyStore = Mockito.mock(KeyStore.class);
serviceAuthority.setKeyStore(keyStore);
Mockito.when(keyStore.getPublicKey("sports", "fantasy", "1")).thenReturn(null);
long issueTime = System.currentTimeMillis() / 1000;
// Create and sign token
List<String> authorizedServices = new ArrayList<>();
authorizedServices.add("sports.fantasy");
PrincipalToken userTokenToSign = new PrincipalToken.Builder(usrVersion, usrDomain, usrName).salt(salt).issueTime(issueTime).expirationWindow(expirationTime).authorizedServices(authorizedServices).build();
userTokenToSign.sign(servicePrivateKeyStringK0);
// now let's sign the token for an authorized service
userTokenToSign.signForAuthorizedService("sports.fantasy", "1", servicePrivateKeyStringK1);
// Create a token for validation using the signed data
StringBuilder errMsg = new StringBuilder();
assertNull(serviceAuthority.validateAuthorizeService(userTokenToSign, errMsg));
}
use of com.yahoo.athenz.auth.KeyStore in project athenz by yahoo.
the class PrincipalAuthorityTest method testPrincipalAuthority_TamperedToken.
@Test
public void testPrincipalAuthority_TamperedToken() throws IOException, CryptoException {
PrincipalAuthority serviceAuthority = new PrincipalAuthority();
KeyStore keyStore = new KeyStoreMock();
serviceAuthority.setKeyStore(keyStore);
// Create and sign token
PrincipalToken serviceToken = new PrincipalToken.Builder(svcVersion, svcDomain, svcName).host(host).salt(salt).expirationWindow(expirationTime).build();
serviceToken.sign(servicePrivateKeyStringK0);
String tokenToTamper = serviceToken.getSignedToken();
StringBuilder errMsg = new StringBuilder();
Principal principal = serviceAuthority.authenticate(tamperWithServiceToken(tokenToTamper), null, "GET", errMsg);
// Service Authority should return null when authenticate() fails
assertNull(principal);
assertTrue(!errMsg.toString().isEmpty());
assertTrue(errMsg.toString().contains("authenticate"));
principal = serviceAuthority.authenticate(tamperWithServiceToken(tokenToTamper), null, "GET", null);
assertNull(principal);
}
use of com.yahoo.athenz.auth.KeyStore in project athenz by yahoo.
the class PrincipalAuthorityTest method testPrincipalAuthorityWithAuthorizedService.
@Test
public void testPrincipalAuthorityWithAuthorizedService() throws IOException, CryptoException {
PrincipalAuthority serviceAuthority = new PrincipalAuthority();
KeyStore keyStore = new KeyStoreMock();
serviceAuthority.setKeyStore(keyStore);
// Create and sign token with key version 0
List<String> authorizedServices = new ArrayList<>();
authorizedServices.add("sports.fantasy");
authorizedServices.add("sports.hockey");
long issueTime = System.currentTimeMillis() / 1000;
PrincipalToken userTokenToSign = new PrincipalToken.Builder(usrVersion, usrDomain, usrName).salt(salt).ip("127.0.0.2").issueTime(issueTime).expirationWindow(expirationTime).authorizedServices(authorizedServices).build();
userTokenToSign.sign(servicePrivateKeyStringK0);
// now let's sign the token for an authorized service
userTokenToSign.signForAuthorizedService("sports.fantasy", "1", servicePrivateKeyStringK1);
// we're going to pass a different IP so we get the authorized service checks
StringBuilder errMsg = new StringBuilder();
Principal principal = serviceAuthority.authenticate(userTokenToSign.getSignedToken(), "127.0.0.3", "POST", errMsg);
assertNotNull(principal);
assertEquals(principal.getAuthorizedService(), "sports.fantasy");
}
use of com.yahoo.athenz.auth.KeyStore in project athenz by yahoo.
the class PrincipalAuthorityTest method testValidateAuthorizedServiceNoServices.
@Test
public void testValidateAuthorizedServiceNoServices() throws IOException {
PrincipalAuthority serviceAuthority = new PrincipalAuthority();
KeyStore keyStore = new KeyStoreMock();
serviceAuthority.setKeyStore(keyStore);
long issueTime = System.currentTimeMillis() / 1000;
// Create and sign token
PrincipalToken userTokenToSign = new PrincipalToken.Builder(usrVersion, usrDomain, usrName).salt(salt).issueTime(issueTime).expirationWindow(expirationTime).build();
userTokenToSign.sign(servicePrivateKeyStringK0);
// Create a token for validation using the signed data
StringBuilder errMsg = new StringBuilder();
assertNull(serviceAuthority.validateAuthorizeService(userTokenToSign, errMsg));
}
Aggregations