messageDigest.update(digest.getRealm().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(new String(password).getBytes(UTF8));
@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; }
messageDigest.update(digest.getRealm().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(new String(password).getBytes(UTF8));
messageDigest.update(digest.getRealm().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(new String(password).getBytes(UTF8));
messageDigest.update(digest.getRealm().getBytes(UTF8)); messageDigest.update((byte) ':'); messageDigest.update(new String(password).getBytes(UTF8));
@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; }
/** * 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); } }
/** * 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 CredentialStorage createCredentialStorage(IdentityContext context, Account account, Digest digest, CredentialStore<?> store, Date effectiveDate, Date expiryDate) { if (isNullOrEmpty(digest.getRealm())) { throw MESSAGES.credentialDigestInvalidRealm(); } if (isNullOrEmpty(digest.getPassword())) { throw MESSAGES.credentialInvalidPassword(); } String accountName = (String) getDefaultLoginNameProperty(account.getClass()).getValue(account); byte[] ha1 = DigestUtil.calculateA1(accountName, digest.getRealm(), digest.getPassword().toCharArray()); DigestCredentialStorage storage = new DigestCredentialStorage(ha1, digest.getRealm()); if (effectiveDate != null) { storage.setEffectiveDate(effectiveDate); } storage.setExpiryDate(expiryDate); return storage; }
@Override public CredentialStorage createCredentialStorage(IdentityContext context, Account account, Digest digest, CredentialStore<?> store, Date effectiveDate, Date expiryDate) { if (isNullOrEmpty(digest.getRealm())) { throw MESSAGES.credentialDigestInvalidRealm(); } if (isNullOrEmpty(digest.getPassword())) { throw MESSAGES.credentialInvalidPassword(); } String accountName = (String) getDefaultLoginNameProperty(account.getClass()).getValue(account); byte[] ha1 = DigestUtil.calculateA1(accountName, digest.getRealm(), digest.getPassword().toCharArray()); DigestCredentialStorage storage = new DigestCredentialStorage(ha1, digest.getRealm()); if (effectiveDate != null) { storage.setEffectiveDate(effectiveDate); } storage.setExpiryDate(expiryDate); return storage; }
public void validate(Digest digest, String systemRealm, String key) throws DigestValidationException { if (digest.getRealm() == null) throw new DigestValidationException("Mandatory field 'realm' not specified"); if (digest.getNonce() == null) if (!systemRealm.equals(digest.getRealm())) { throw new DigestValidationException("Realm name [" + digest.getRealm() + "] does not match system realm name [" + systemRealm + "]");
public void validate(Digest digest, String systemRealm, String key) throws DigestValidationException { if (digest.getRealm() == null) throw new DigestValidationException("Mandatory field 'realm' not specified"); if (digest.getNonce() == null) if (!systemRealm.equals(digest.getRealm())) { throw new DigestValidationException("Realm name [" + digest.getRealm() + "] does not match system realm name [" + systemRealm + "]");