0

我知道 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 时“管理员/管理员”工作,但我想改用 5.9.0。仅仅因为用户名和密码改变了就退出这个版本是很糟糕的。

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

4

1 回答 1

5

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

于 2013-11-04T15:25:18.757 回答