http_request.setUserPrincipal(user);
base_request.setUserPrincipal(user);
    public void handle(ServletRequest request,                       ServletResponse response)        throws ServletException,               UnavailableException,               IOException    {        if (_class==null)            throw new UnavailableException("Servlet Not Initialized");                Servlet servlet=(!_initOnStartup||_servlets!=null)?getServlet():_servlet;        if (servlet==null)            throw new UnavailableException("Could not instantiate "+_class);        // Service the request        boolean servlet_error=true;        Principal user=null;        try        {            // Handle aliased path            if (_forcedPath!=null)                // TODO complain about poor naming to the Jasper folks                request.setAttribute("org.apache.catalina.jsp_file",_forcedPath);            // Handle run as            /* TODO runAs            if (_runAs!=null && _realm!=null)            {                http_request=getHttpContext().getHttpConnection().getRequest();                user=_realm.pushRole(http_request.getUserPrincipal(),_runAs);                http_request.setUserPrincipal(user);            } */                        servlet.service(request,response);            servlet_error=false;        }        catch(UnavailableException e)        {            if (_servlets!=null && servlet!=null)                try{stop();}catch(Exception e2){Log.ignore(e2);}            makeUnavailable(e);        }        finally        {            // pop run-as role            /* TODO runAs            if (_runAs!=null && _realm!=null && user!=null)            {                user=_realm.popRole(user);                http_request.setUserPrincipal(user);            }            */            // Handle error params.            if (servlet_error)                request.setAttribute("javax.servlet.error.servlet_name",getName());            // Return to singleThreaded pool            synchronized(this)            {                if (_servlets!=null && servlet!=null)                    _servlets.push(servlet);            }        }    }