/** * Create a digest auth handler, specifying the expire timeout for nonces. * * @param authProvider the auth service to use * @param nonceExpireTimeout the nonce expire timeout in milliseconds. * @return the auth handler */ static DigestAuthHandler create(HtdigestAuth authProvider, long nonceExpireTimeout) { return new DigestAuthHandlerImpl(authProvider, nonceExpireTimeout); } }
private static synchronized String md5(byte[] payload) { MD5.reset(); return bytesToHex(MD5.digest(payload)); } }
@Override protected String authenticateHeader(RoutingContext context) { final byte[] bytes = new byte[32]; random.nextBytes(bytes); // generate nonce String nonce = md5(bytes); // save it nonces.put(nonce, new Nonce()); // generate opaque String opaque = null; final Session session = context.session(); if (session != null) { opaque = (String) session.data().get("opaque"); } if (opaque == null) { random.nextBytes(bytes); // generate random opaque opaque = md5(bytes); } return "Digest realm=\"" + realm + "\", qop=\"auth\", nonce=\"" + nonce + "\", opaque=\"" + opaque + "\""; }
parseAuthorization(context, false, parseAuthorization -> { if (parseAuthorization.failed()) { handler.handle(Future.failedFuture(parseAuthorization.cause()));
@Override protected String authenticateHeader(RoutingContext context) { final byte[] bytes = new byte[32]; random.nextBytes(bytes); // generate nonce String nonce = md5(bytes); // save it nonces.put(nonce, new Nonce()); // generate opaque String opaque = null; final Session session = context.session(); if (session != null) { opaque = (String) session.data().get("opaque"); } if (opaque == null) { random.nextBytes(bytes); // generate random opaque opaque = md5(bytes); } return "Digest realm=\"" + realm + "\", qop=\"auth\", nonce=\"" + nonce + "\", opaque=\"" + opaque + "\""; }
parseAuthorization(context, false, parseAuthorization -> { if (parseAuthorization.failed()) { handler.handle(Future.failedFuture(parseAuthorization.cause()));
/** * Create a digest auth handler * * @param authProvider the auth provider to use * @return the auth handler */ static DigestAuthHandler create(HtdigestAuth authProvider) { return new DigestAuthHandlerImpl(authProvider, DEFAULT_NONCE_EXPIRE_TIMEOUT); }
private static synchronized String md5(byte[] payload) { MD5.reset(); return bytesToHex(MD5.digest(payload)); } }
/** * Create a digest auth handler, specifying the expire timeout for nonces. * * @param authProvider the auth service to use * @param nonceExpireTimeout the nonce expire timeout in milliseconds. * @return the auth handler */ static DigestAuthHandler create(HtdigestAuth authProvider, long nonceExpireTimeout) { return new DigestAuthHandlerImpl(authProvider, nonceExpireTimeout); } }
/** * Create a digest auth handler * * @param authProvider the auth provider to use * @return the auth handler */ static DigestAuthHandler create(HtdigestAuth authProvider) { return new DigestAuthHandlerImpl(authProvider, DEFAULT_NONCE_EXPIRE_TIMEOUT); }