Hi all –
I have some really old servlets that access Domino. The servlets utilize javax.servlet.http. I have compiled the code and just about everything works, except that it is continuing to send over Anonymous for request.getRemoteUser. I am using Netbeans to compile the code and jdk1.3.1_18. In the web.xml I have the following:
BASIC
</login-config>
I’m not a Java developer and I really don’t understand if I’m missing anything else. If I take the old code which is already compiled, it runs fine. So, I think that I may be missing some instructions for comiling the code or configuring it for my servers.
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.ServletInputStream;
import java.io.*;
import java.util.*;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.oreilly.servlet.MultipartRequest;
import lotus.domino.*;
public class accept extends javax.servlet.http.HttpServlet {
private static final String REALM = “/servlet”;
private static final String CONTENT_TYPE = “text/html”;
private static final String DIRNAME = “c:/queues/in-http”;
private static final String DBNAME = “in-http.nsf”;
private static Session notesSession;
private static Database notesDb;
/*Initialize global variables/
public void init(ServletConfig config) throws ServletException {
// public void init() throws ServletException {
super.init(config);
wmConnection.init();
}
private boolean isSecured(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (!request.getScheme().equalsIgnoreCase(“https”)) { // Force redirect to same URL via https.
System.out.println(request.getScheme() + “://” + request.getServerName() + “:” + request.getServerPort() + request.getRequestURI());
String url = new String (HttpUtils.getRequestURL(request));
response.setHeader(“Location”, “https” + url.substring(4) + “?” + request.getQueryString());
response.sendError(HttpServletResponse.SC_MOVED_TEMPORARILY);
System.out.println(request.getScheme() + “://” + request.getServerName() + “:” + request.getServerPort() + request.getRequestURI());
return false;
} else if (request.getRemoteUser() == null) { // Return request for basic authentication to browser.
response.setHeader(“WWW-Authenticate”, “Basic realm="” + REALM + “"”);
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
System.out.println( request.getRemoteUser().toString() );
return false;
}
IT GETS HERE - SO MY USER SHOULD BE AUTHENTICATED
System.out.println( request.getQueryString());
System.out.println( request.getContentType());
System.out.println( request.getContentLength());
System.out.println( request.getHeader(“User-Agent”));
System.out.println(request.getMethod());
System.out.println( request.getRemoteUser()); //returns ANONYMOUS always
System.out.println(request.getScheme() + “://” + request.getServerName() + “:” + request.getServerPort() + request.getRequestURI());
System.out.println(request.getHeader(“authorization”) );
return true;
}
/*Process the HTTP Get request/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (isSecured(request, response)) {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println(“”);
out.println(“”);
}
}
// public
//need to add a class that invoke my service
// if request.getQueryString()
// wmConnection urlTest = new wmConnection();
// }
private String createDocument(HttpServletRequest request, File f) throws NotesException {
Document doc = notesDb.createDocument();
doc.appendItemValue(“REMOTE_ADDR”, request.getRemoteAddr());
doc.appendItemValue(“REMOTE_USER”, request.getRemoteUser());
doc.appendItemValue(“LOCAL_ADDR”, request.getServerName());
doc.appendItemValue(“PATH_INFO”, f.getPath());
doc.appendItemValue(“CONTENT_TYPE”, request.getContentType());
doc.appendItemValue(“CONTENT_LENGTH”, request.getContentLength());
doc.appendItemValue(“REQUEST_METHOD”, request.getMethod());
doc.appendItemValue(“REQUEST_PARAMETERS”, request.getQueryString());
doc.appendItemValue(“USER_AGENT”, request.getHeader(“User-Agent”));
Enumeration e = request.getHeaderNames();
Vector headers = new Vector();
while (e != null && e.hasMoreElements()) {
String name = (String)e.nextElement();
headers.addElement(name + ": " + request.getHeader(name));
}
doc.appendItemValue(“HEADERS”, headers);
//Calendar postEnd = Calendar.getInstance();
//doc.appendItemValue(“DURATION”, postEnd.getTime().getTime() - postStart.getTime().getTime());
DateTime timeNow = notesSession.createDateTime(“Today”);
timeNow.setNow();
doc.appendItemValue(“SUBMITTED”, timeNow);
doc.save();
String id = doc.getNoteID();
doc.recycle();
return id;
}
private File createTempFile(String dir) {
int counter = new Random().nextInt();
File f;
do {
f = new File(dir, “fil” + Integer.toString(counter & 0xffff) + “.tmp”);
counter++;
} while (f.exists());
return f;
}
/*Process the HTTP Post request/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (isSecured(request, response)) {
PrintWriter out = response.getWriter();
response.setContentType(“text/xml”);
out.println(“<?xml version=\"1.0\" standalone=\"yes\" ?>”);
out.println(“”);
System.out.println( request.getQueryString());
System.out.println( request.getRemoteUser());
System.out.println( request.getQueryString());
System.out.println( request.getContentType());
System.out.println( request.getContentLength());
System.out.println( request.getHeader(“User-Agent”));
System.out.println(request.getMethod());
System.out.println(request.getScheme() + “://” + request.getServerName() + “:” + request.getServerPort() + request.getRequestURI());
System.out.println(request.getHeader(“authorization”) );