通过Java为ActiveMQ / Jolokia / HawtIO提供的凭据

时间:2013-11-01 23:07:26

标签: java apache activemq hawtio jolokia

我知道5.9.0的HawtIO / Jolokia的默认密码是在\ conf \文件夹中设置的,并且是

管理/管理 系统/经理 等

但是,尝试通过Java执行restful命令时,这些密码都不起作用:

CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(null, -80), new UsernamePasswordCredentials("admin", "admin"));
CloseableHttpClient httpclient0 = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
URI uri0 = URI.create("http://localhost:8161/hawtio/auth/login/");
HttpGet httpget = new HttpGet(uri0);
HttpResponse r0 = httpclient0.execute(httpget);
System.out.println("Login form get: " + r0.getStatusLine());
for (Header h : r0.getAllHeaders())
  System.out.println(h.getName() + "/" + h.getValue());
HttpEntity entity = r0.getEntity();

InputStream is0 = entity.getContent();
String resp = IOUtils.toString(is0);
System.out.println("Response0: " + resp);

以下代码只是吐出403 Forbidden回复!我尝试过很多用户名和密码组合。

Login form get: HTTP/1.1 403 Forbidden
Access-Control-Allow-Origin/*
Content-Length/0
Server/Jetty(7.6.9.v20130131)

这里有什么作用?

我记得在运行5.8.0时“admin / admin”有效,但我想用5.9.0代替。仅仅因为用户名和密码改变而退出此版本将是蹩脚的。

此外,哪个\ conf文件规定了这个密码......?

1 个答案:

答案 0 :(得分:5)

你几乎得到它,你只需要POST到该URL而不是做GET。您只需在Authorization标头中设置您的用户名/密码即可。 hawtio中的身份验证过滤器避免发送回401,因为它会显示浏览器身份验证提示,因此您不会看到401返回。