用HTTPClient自动登录Tomca管理页面
前提是你在你的tomcat-users.xml下配置好admin用户:
[html][/html] view plaincopyprint?
- <?xml version=’1.0′ encoding=’utf-8′?>
- <!–
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the “License”); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an “AS IS” BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- –>
- <tomcat-users>
- <!–
- NOTE: By default, no user is included in the “manager-gui” role required
- to operate the “/manager/html” web application. If you wish to use this app,
- you must define such a user – the username and password are arbitrary.
- –>
- <!–
- NOTE: The sample user and role entries below are wrapped in a comment
- and thus are ignored when reading this file. Do not forget to remove
- <!.. ..> that surrounds them.
- –>
- <role rolename=”tomcat”/>
- <role rolename=”role1″/>
- <role rolename=”manager”/>
- <role rolename=”admin”/>
- <user username=”tomcat” password=”tomcat” roles=”tomcat”/>
- <user username=”both” password=”tomcat” roles=”tomcat,role1″/>
- <user username=”role1″ password=”tomcat” roles=”role1″/>
- <user username=”admin” password=”admin” roles=”admin,manager”/>
- </tomcat-users>
自动登录代码如下:
[java][/java] view plaincopyprint?
- <pre name=”code” class=”java”>import java.io.IOException;
- import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.HttpException;
- import org.apache.commons.httpclient.HttpStatus;
- import org.apache.commons.httpclient.UsernamePasswordCredentials;
- import org.apache.commons.httpclient.auth.AuthScope;
- import org.apache.commons.httpclient.methods.GetMethod;
- import org.apache.commons.httpclient.params.HttpMethodParams;
- public class AutoLoginTomcat {
- /**
- * @param args
- */
- public static void main(String[] args) {
- HttpClient httpClient = new HttpClient();
- httpClient.getState().setCredentials(
- new AuthScope(“127.0.0.1”, 8080, null),
- new UsernamePasswordCredentials(“admin”, “admin”));
- httpClient.getParams().setAuthenticationPreemptive(true);
- GetMethod getMethod = new GetMethod(
- “http://127.0.0.1:8080/manager/status?XML=true”);
- getMethod.setDoAuthentication(true);
- getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
- new DefaultHttpMethodRetryHandler());
- try {
- int statusCode = httpClient.executeMethod(getMethod);
- if (statusCode != HttpStatus.SC_OK) {
- System.err.println(“Method failed: “
- + getMethod.getStatusLine());
- }
- byte[] responseBody = getMethod.getResponseBody();
- System.out.println(new String(responseBody));
- } catch (HttpException e) {
- System.out.println(“Please check your provided http address!”);
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- getMethod.releaseConnection();
- }
- }
- }
- </pre><br>
打印:
[html][/html] view plaincopyprint?
- <?xml version=”1.0″ encoding=”utf-8″?><?xml-stylesheet type=”text/xsl” href=”xform.xsl” ?><status><jvm><memory free=’52663288′ total=’62980096′ max=’933953536’/></jvm><connector name=’http-8080′><threadInfo maxThreads=”200″ currentThreadCount=”4″ currentThreadsBusy=”1″ /><requestInfo maxTime=”96″ processingTime=”276″ requestCount=”26″ errorCount=”9″ bytesReceived=”0″ bytesSent=”102224″ /><workers><worker stage=”R” requestProcessingTime=”0″ requestBytesSent=”0″ requestBytesRecieved=”0″ remoteAddr=”?” virtualHost=”?” method=”?” currentUri=”?” currentQueryString=”?” protocol=”?” /><worker stage=”R” requestProcessingTime=”0″ requestBytesSent=”0″ requestBytesRecieved=”0″ remoteAddr=”?” virtualHost=”?” method=”?” currentUri=”?” currentQueryString=”?” protocol=”?” /><worker stage=”S” requestProcessingTime=”2″ requestBytesSent=”0″ requestBytesReceived=”0″ remoteAddr=”127.0.0.1″ virtualHost=”127.0.0.1″ method=”GET” currentUri=”/manager/status” currentQueryString=”XML=true” protocol=”HTTP/1.1″ /><worker stage=”R” requestProcessingTime=”0″ requestBytesSent=”0″ requestBytesRecieved=”0″ remoteAddr=”?” virtualHost=”?” method=”?” currentUri=”?” currentQueryString=”?” protocol=”?” /></workers></connector><connector name=’ajp-8009′><threadInfo maxThreads=”200″ currentThreadCount=”0″ currentThreadsBusy=”0″ /><requestInfo maxTime=”0″ processingTime=”0″ requestCount=”0″ errorCount=”0″ bytesReceived=”0″ bytesSent=”0″ /><workers></workers></connector></status>