I need to store the username/password entered by the user in order to use them later to connect to an external system, so I tried changing login.jsp to post to a jsp file rather than j_security_check. The jsp then stores the username/password and tries to call j_security_check as follows: <%! String userName, password; %> <% userName = request.getParameter("j_username"); password = request.getParameter("j_password"); %> <%-- store login information in javax.servlet.http.HttpSession --%> <% session.setAttribute("login_username", userName); session.setAttribute("login_password", password); %> <%-- execute security check --%> <jsp:forward page="j_security_check"> <jsp:param name="j_username" value="<%= userName %>"/> <jsp:param name="j_password" value="<%= password %>"/> </jsp:forward> However, this gives the exception below (in tomcat 4m4) and creates an empty file called j_security_check in the login directory. If I change the jsp:forward to another jsp it works and the jsp gets all the parameters/attributes and header info. Is this a bug or is there any other way to call j_security_check manually? Or at least replicate the work of authenticating the username/password and storing that as the principal. Thanks, Barry. A Servlet Exception Has Occurred Exception Report: javax.servlet.ServletException: Servlet.service() for servlet default threw exception at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:537) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:431) at login._0002flogin_0002fsecurity_0005fcheck_0002ejspsecurity_0005fcheck_jsp_32._jspService(_0002flogin_0002fsecurity_0005fcheck_0002ejspsecurity_0005fcheck_jsp_32.java:102) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:181) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:317) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:396) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:180) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:165) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:443) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:1876) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:343) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:785) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:902) at java.lang.Thread.run(Thread.java:484) Root Cause: java.lang.NullPointerException at org.apache.catalina.resources.FileResources.setResource(FileResources.java:586) at org.apache.catalina.servlets.DefaultServlet.doPut(DefaultServlet.java:401) at org.apache.catalina.servlets.DefaultServlet.doPost(DefaultServlet.java:365) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:517) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:431) at login._0002flogin_0002fsecurity_0005fcheck_0002ejspsecurity_0005fcheck_jsp_32._jspService(_0002flogin_0002fsecurity_0005fcheck_0002ejspsecurity_0005fcheck_jsp_32.java:102) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:181) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:317) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:396) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:180) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:165) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:443) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:1876) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:343) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:785) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:902) at java.lang.Thread.run(Thread.java:484) _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. Share information about yourself, create your own public profile at http://profiles.msn.com.