package weblog; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.Enumeration; import org.objectweb.jonathan.apis.kernel.Context; import weblog.business.apis.EntriesReader; import weblog.business.apis.AuthenticationService; public class WebLog extends HttpServlet { EntriesReader reader; AuthenticationService auth = null; public WebLog() { Context initialContext = Startup.newConfiguration(WebLog.class); reader = (EntriesReader)initialContext.getValue("Entries Reader", (char)0); Object oAuth = initialContext.getValue("Authentication Service", (char)0); if (oAuth != Context.NO_VALUE) { auth = (AuthenticationService)oAuth; } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=iso-8859-1"); PrintWriter pw = response.getWriter(); printHeader(pw); for(Enumeration e = reader.getEntries(); e.hasMoreElements(); ) { String entry = (String)e.nextElement(); pw.println("<p>" + entry + "</p>"); } printInputForm(pw); printFooter(pw); pw.flush(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isok = true; if (auth != null) { isok = false; try { isok = auth.authenticate(request.getParameter("userid"), request.getParameter("passwd")); } catch (Exception ignored) {} } if (isok) { try { String text = request.getParameter("text"); if (text != null) reader.addEntry(text); } catch (Exception ignored) {} doGet(request, response); } else { response.sendError(401); // unauthorised } } private void printHeader(PrintWriter pw) { pw.println("<!DOCTYPE HTML PUBLIC \"-//W3C//HTML 4.01 Transitional//EN\">"); pw.println("<html><head><title>WebLog</title>"); pw.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">"); pw.println("</head>"); pw.println("<body><h1>WebLog</h1>"); } private void printFooter(PrintWriter pw) { pw.println("</body></html>"); } private void printInputForm(PrintWriter pw) { pw.println("<hr width=\"75%\">"); pw.println("<form action=\"weblog\" method=\"POST\">"); pw.println("<input type=\"text\" name=\"text\">"); /** If auth is not null, we have an authentication method */ if (auth != null) { pw.println("<br>"); pw.println("<table><tr><td>Username</td><td>Password</td></tr>"); pw.println("<tr><td><input type=\"text\" name=\"userid\"></td><td><input type=\"password\" name=\"passwd\"></td></tr></table>"); } pw.println("<br><input type=\"submit\" value=\"Send\">"); pw.println("</form>"); } }