@Override protected Account getAccount(final IdentityContext context, final DigestCredentials credentials) { return getAccount(context, credentials.getDigest().getUsername()); }
@Override protected Account getAccount(final IdentityContext context, final DigestCredentials credentials) { return getAccount(context, credentials.getDigest().getUsername()); }
@Override protected CredentialStorage getCredentialStorage(final IdentityContext context, final Account account, final DigestCredentials credentials, final CredentialStore<?> store) { List<DigestCredentialStorage> storages = store.retrieveCredentials(context, account, DigestCredentialStorage.class); for (DigestCredentialStorage storage : storages) { if (storage.getRealm().equals(credentials.getDigest().getRealm()) && isCurrentCredential(storage)) { return storage; } } return null; }
@Override protected CredentialStorage getCredentialStorage(final IdentityContext context, final Account account, final DigestCredentials credentials, final CredentialStore<?> store) { List<DigestCredentialStorage> storages = store.retrieveCredentials(context, account, DigestCredentialStorage.class); for (DigestCredentialStorage storage : storages) { if (storage.getRealm().equals(credentials.getDigest().getRealm()) && isCurrentCredential(storage)) { return storage; } } return null; }
@Override public void validate(Credentials credentials, IdentityStore<?> identityStore) { if (!CredentialStore.class.isInstance(identityStore)) { throw new IdentityManagementException("Provided IdentityStore [" + identityStore + "] is not an instance of CredentialStore."); } DigestCredentials digestCredential = (DigestCredentials) credentials; Agent agent = identityStore.getAgent(digestCredential.getDigest().getUsername()); CredentialStore credentialStore = (CredentialStore) identityStore; digestCredential.setStatus(Status.VALID); // PasswordStorage storedPassword = credentialStore.retrieveCurrentCredential(agent, PasswordStorage.class); // // if (storedPassword != null) { // if (DigestUtil.matchCredential(digestCredential.getDigest(), storedPassword.getPassword().toCharArray())) { // digestCredential.setStatus(Status.VALID); // digestCredential.setValidatedAgent(agent); // } // } }
@Override protected boolean validateCredential(IdentityContext context, final CredentialStorage credentialStorage, final DigestCredentials credentials, CredentialStore<?> store) { DigestCredentialStorage currentCredential = (DigestCredentialStorage) credentialStorage; Digest digest = credentials.getDigest(); if (currentCredential != null) { String providedDigest = digest.getDigest(); String expectedDigest = null; if (digest.getMethod() != null && digest.getUri() != null) { byte[] storedHA1 = currentCredential.getHa1(); byte[] ha2 = calculateA2(digest.getMethod(), digest.getUri()); expectedDigest = calculateDigest(digest, storedHA1, ha2); } else { expectedDigest = String.valueOf(Base64.encodeBytes(currentCredential.getHa1())); } return expectedDigest.equals(providedDigest); } return false; }
@Override protected boolean validateCredential(IdentityContext context, final CredentialStorage credentialStorage, final DigestCredentials credentials, CredentialStore<?> store) { DigestCredentialStorage currentCredential = (DigestCredentialStorage) credentialStorage; Digest digest = credentials.getDigest(); if (currentCredential != null) { String providedDigest = digest.getDigest(); String expectedDigest = null; if (digest.getMethod() != null && digest.getUri() != null) { byte[] storedHA1 = currentCredential.getHa1(); byte[] ha2 = calculateA2(digest.getMethod(), digest.getUri()); expectedDigest = calculateDigest(digest, storedHA1, ha2); } else { expectedDigest = String.valueOf(Base64.encodeBytes(currentCredential.getHa1())); } return expectedDigest.equals(providedDigest); } return false; }