@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()); }
byte[] ha1; messageDigest.update(digest.getUsername().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getRealm().getBytes(UTF8));
byte[] ha1; messageDigest.update(digest.getUsername().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getRealm().getBytes(UTF8));
byte[] ha1; messageDigest.update(digest.getUsername().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getRealm().getBytes(UTF8));
byte[] ha1; messageDigest.update(digest.getUsername().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getRealm().getBytes(UTF8));
/** * Given the digest, construct the client response value * * @param digest * @param password * @return * @throws FormatException */ public static String calculate(Digest digest, char[] password) { try { MessageDigest messageDigest = getMessageDigest(); byte[] ha1 = calculateA1(digest.getUsername(), digest.getRealm(), password); byte[] ha2 = calculateA2(digest.getMethod(), digest.getUri()); messageDigest.update(convertBytesToHex(ha1).getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getNonce().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getNonceCount().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getClientNonce().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getQop().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(convertBytesToHex(ha2).getBytes(UTF8)); byte[] digestedValue = messageDigest.digest(); return convertBytesToHex(digestedValue); } catch (Exception e) { throw new RuntimeException(e); } }
@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); // } // } }
/** * Given the digest, construct the client response value * * @param digest * @param password * @return * @throws FormatException */ public static String calculate(Digest digest, char[] password) { try { MessageDigest messageDigest = getMessageDigest(); byte[] ha1 = calculateA1(digest.getUsername(), digest.getRealm(), password); byte[] ha2 = calculateA2(digest.getMethod(), digest.getUri()); messageDigest.update(convertBytesToHex(ha1).getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getNonce().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getNonceCount().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getClientNonce().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(digest.getQop().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(convertBytesToHex(ha2).getBytes(UTF8)); byte[] digestedValue = messageDigest.digest(); return convertBytesToHex(digestedValue); } catch (Exception e) { throw new RuntimeException(e); } }