/*
* TestIgnoreHiddenJarFilesServlet - Verify bug 6314481. The test ensures
* that hidden JAR files are ignored
* (via an option in sun-web.xml) by
* container for loading
*/
package servlet_tests;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.net.*;
import javax.net.ssl.*;
public class TestIgnoreHiddenJarFilesServlet extends HttpServlet {
private PrintWriter out;
private String host;
private int port;
private ServletContext context;
private boolean debug = false;
private static final String EXPECTED_RESPONSE = "true";
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
out = response.getWriter();
out.println("
");
out.println("");
out.println("TestIgnoreHiddenJarFilesServlet
");
if (request.getParameter("debug") != null) {
debug = true;
}
context = getServletContext();
HttpSession session = request.getSession();
if (session != null) {
host = request.getServerName();
port = request.getServerPort();
String protocol = request.getScheme();
if ("http".equals(protocol)) {
invokeServlet();
} else {
invokeServletHttps();
}
}
out.println("");
}
private void invokeServlet() {
try {
URL url = new URL("http://" + host + ":" + port + "/" +
context.getServletContextName() +
"/ServletTest2");
// out.println(" url = " + url.toString() + "
");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode != 200) {
out.println(" Expected for 200 but received " + responseCode);
} else {
InputStream is = connection.getInputStream();
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
String line = bis.readLine();
System.out.println("line is " + line);
if (EXPECTED_RESPONSE.equals(line)) {
out.println(" Test PASSED
");
} else {
out.println(" Test FAILED
");
}
}
} catch (Exception e) {
out.println("Exception : " + e + " -> see server.log
");
e.printStackTrace();
}
}
// https
private void invokeServletHttps() {
try {
URL url = new URL("https://" + host + ":" + port + "/" +
context.getServletContextName() +
"/ServletTest2");
// out.println(" url = " + url.toString() + "
");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setHostnameVerifier(new MyHostnameVerifier());
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode != 200) {
out.println(" Expected for 200 but received " + responseCode);
} else {
InputStream is = connection.getInputStream();
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
String line = bis.readLine();
if (EXPECTED_RESPONSE.equals(line)) {
out.println(" Test PASSED
");
} else {
out.println(" Test FAILED
");
}
}
} catch (Exception e) {
out.println("Exception : " + e + " -> see server.log
");
e.printStackTrace();
}
}
private static class MyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
//System.out.println("JD:verify Hostname...");
return true;
}
}
}