1 package com.ibm.webdav.protocol.http; 2 3 17 import java.io.*; 18 import java.util.*; 19 20 import javax.servlet.*; 21 import javax.servlet.http.*; 22 23 import com.ibm.webdav.*; 24 import com.ibm.webdav.impl.*; 25 26 27 42 public class ResourceHTTPSkel extends HttpServlet { 43 46 public void init(ServletConfig config) throws ServletException { 47 super.init(config); 48 49 } 50 51 59 protected void service(HttpServletRequest request, 60 HttpServletResponse response) 61 throws ServletException, IOException { 62 try { 63 WebDAVMethod method = WebDAVMethod.create(request, response); 65 response.setHeader("dav4j-server-version", Resource.DAV4JVersion); 66 67 ResourceImpl resource = method.getResource(); 68 69 if (this.allowUser(resource) == false) { 70 response.setHeader("WWW-Authenticate", "BASIC realm=\"OHRM\""); 72 response.sendError(HttpServletResponse.SC_UNAUTHORIZED); 73 } else { 74 if (ResourceImpl.debug) { 75 System.err.println(method.getMethodName() + " " + 76 resource.getURL().getFile()); 77 78 Enumeration propertyNames = resource.getRequestContext() 79 .keys(); 80 81 while (propertyNames.hasMoreElements()) { 82 String name = (String ) propertyNames.nextElement(); 83 String value = (String ) resource.getRequestContext() 84 .get(name); 85 System.err.println(name + ": " + value); 86 } 87 88 System.err.println(); 89 } 90 91 WebDAVStatus statusCode = method.execute(); 94 95 if (ResourceImpl.debug) { 96 System.err.println("server statusCode = " + statusCode); 97 } 98 } 99 } catch (Exception exc) { 100 System.err.println("ResourctHTTPSkel internal error: " + exc); 102 exc.printStackTrace(); 103 } 104 } 105 106 protected boolean allowUser(ResourceImpl resource) 107 throws IOException { 108 String user = resource.getContext().getRequestContext() 109 .getAuthorizationId(); 110 String pwd = resource.getContext().getRequestContext().getPassword(); 111 112 if ((user != null) && (user.length() > 0) && (pwd != null) && 113 (pwd.length() > 0)) { 114 return resource.authenticateUser(user, pwd); 115 } else { 116 return false; 117 } 118 } 119 } | Popular Tags |