### Question:
Http3Util { public static void enableAuth(HttpClient client, Keychain keychain, KeyId keyId) { Signer signer = new Signer(keychain, keyId); CredentialsProvider credProvider = (CredentialsProvider) client.getParams() .getParameter(CredentialsProvider.PROVIDER); CredentialsProvider newProvider; if (credProvider instanceof SignerCredentialsProvider) { newProvider = new SignerCredentialsProvider(signer, ((SignerCredentialsProvider) credProvider).getDelegatee()); } else { newProvider = new SignerCredentialsProvider(signer, credProvider); } client.getParams().setParameter(CredentialsProvider.PROVIDER, newProvider); AuthPolicy.registerAuthScheme(Constants.SCHEME, Http3SignatureAuthScheme.class); List<String> schemes = new ArrayList<String>(); schemes.add(Constants.SCHEME); Collection authSchemePriority = (Collection) DefaultHttpParams.getDefaultParams().getParameter(AuthPolicy.AUTH_SCHEME_PRIORITY); if (authSchemePriority != null) { schemes.addAll(authSchemePriority); } client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, schemes); } private  Http3Util(); static void enableAuth(HttpClient client, Keychain keychain, KeyId keyId);  }### Answer:
@Test public void testLogin() { TestBody.test(new HttpServerTestBody() { @Override protected void execute() throws Exception { List<String> headers = Arrays.asList( Constants.HEADER_REQUEST_TARGET, Constants.HEADER_DATE); setServlet(new AdminServlet(headers)); KeyPair keyPair = KeyTestUtil.getKeyPairFromProperties("b2048", "id_rsa"); DefaultKeychain provider = new DefaultKeychain(); provider.add(new SSHKey(KeyFormat.SSH_RSA, keyPair)); HttpClient client = new HttpClient(); Http3Util.enableAuth(client, provider, getKeyId()); HttpMethod request = new GetMethod(getAbsoluteUrl(TEST_URL)); try { int status = client.executeMethod(request); assertEquals("should return 200", 200, status); } finally { request.releaseConnection(); } } }); }
@Test public void testAllHeaders() { TestBody.test(new HttpServerTestBody() { @Override protected void execute() throws Exception { List<String> headers = Arrays.asList( Constants.HEADER_REQUEST_TARGET, Constants.HEADER_DATE, "x-test" ); setServlet(new AdminServlet(headers)); KeyPair keyPair = KeyTestUtil.getKeyPairFromProperties("b2048", "id_rsa"); DefaultKeychain provider = new DefaultKeychain(); provider.add(new SSHKey(KeyFormat.SSH_RSA, keyPair)); HttpClient client = new HttpClient(); Http3Util.enableAuth(client, provider, getKeyId()); HttpMethod request = new GetMethod(getAbsoluteUrl(TEST_URL)); request.addRequestHeader("x-test", "foo"); try { int status = client.executeMethod(request); assertEquals("should return 200", 200, status); } finally { request.releaseConnection(); } } }); }