Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Modify the processRequest() method in the SimpleWebServer.java file to use this file storage and logging code: public void storeFile (BufferedReader br, OutputStreamWriter osw, String pathname)

Modify the processRequest() method in the SimpleWebServer.java file to use this file storage and logging code:

public void storeFile (BufferedReader br, OutputStreamWriter osw,

String pathname) throws Exception {

FileWriter fw = null;

try {

fw = new FileWriter(pathname);

String s = br.readLine();

while (s != null) {

fw.write(s);

s = br.readLine();

}

fw.close();

osw.write("HTTP/1.0 201 Created");

} catch(Exception e) {

osw.write("HTTP/1.0 500 Internal Server Error");

}

}

public void logEntry(String filename,String record) {

FileWriter fw = new FileWriter (filename, true);

fw.write(getTimestamp()+ " " + record);

fw.close();

}

public String getTimestamp() {

return (new Date()).toString();

}

***********************************************************************

SimpleWebServer.java code:

/*********************************************************************** SimpleWebServer.java This toy web server is used to illustrate security vulnerabilities. This web server only supports extremely simple HTTP GET requests. This file is also available at http://www.learnsecurity.com/ntk ***********************************************************************/ package com.learnsecurity; import java.io.*; import java.net.*; import java.util.*; public class SimpleWebServer { /* Run the HTTP server on this TCP port. */ private static final int PORT = 8080; /* The socket used to process incoming connections from web clients */ private static ServerSocket dServerSocket; public SimpleWebServer () throws Exception { dServerSocket = new ServerSocket (PORT); } public void run() throws Exception { while (true) { /* wait for a connection from a client */ Socket s = dServerSocket.accept(); /* then process the client's request */ processRequest(s); } } /* Reads the HTTP request from the client, and responds with the file the user requested or a HTTP error code. */ public void processRequest(Socket s) throws Exception { /* used to read data from the client */ BufferedReader br = new BufferedReader ( new InputStreamReader (s.getInputStream())); /* used to write data to the client */ OutputStreamWriter osw = new OutputStreamWriter (s.getOutputStream()); /* read the HTTP request from the client */ String request = br.readLine(); String command = null; String pathname = null; /* parse the HTTP request */ StringTokenizer st = new StringTokenizer (request, " "); command = st.nextToken(); pathname = st.nextToken(); if (command.equals("GET")) { /* if the request is a GET try to respond with the file the user is requesting */ serveFile (osw,pathname); } else { /* if the request is a NOT a GET, return an error saying this server does not implement the requested command */ osw.write ("HTTP/1.0 501 Not Implemented "); } /* close the connection to the client */ osw.close(); } public void serveFile (OutputStreamWriter osw, String pathname) throws Exception { FileReader fr=null; int c=-1; StringBuffer sb = new StringBuffer(); /* remove the initial slash at the beginning of the pathname in the request */ if (pathname.charAt(0)=='/') pathname=pathname.substring(1); /* if there was no filename specified by the client, serve the "index.html" file */ if (pathname.equals("")) pathname="index.html"; /* try to open file specified by pathname */ try { fr = new FileReader (pathname); c = fr.read(); } catch (Exception e) { /* if the file is not found,return the appropriate HTTP response code */ osw.write ("HTTP/1.0 404 Not Found "); return; } /* if the requested file can be successfully opened and read, then return an OK response code and send the contents of the file */ osw.write ("HTTP/1.0 200 OK "); while (c != -1) { sb.append((char)c); c = fr.read(); } osw.write (sb.toString()); } /* This method is called when the program is run from the command line. */ public static void main (String argv[]) throws Exception { /* Create a SimpleWebServer object, and run it */ SimpleWebServer sws = new SimpleWebServer(); sws.run(); } } 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases Illuminated

Authors: Catherine M Ricardo, Susan D Urban

3rd Edition

1284056945, 9781284056945

More Books

Students also viewed these Databases questions

Question

What does Processing of an OLAP Cube accomplish?

Answered: 1 week ago