[opencms-dev] User login from inside a handler

Robert Spielmann robert.spielmann at codecentric.de
Mon Jan 4 15:31:21 CET 2010


Hi all,

given code like this:

public void handle(HttpServletRequest request, HttpServletResponse 
response, String name) throws IOException, ServletException {

	String benutzer  =
		request.getParameter(REQUEST_PARAMETER_BENUTZERNAME);
	String passwort  =
		request.getParameter(REQUEST_PARAMETER_PASSWORT);

	CmsObject cms = null;
	try {
		cms = OpenCms.getAuthorizationHandler().
			initCmsObject(request, benutzer, passwort);
	} catch (CmsException e) {
		logger.error("CmsObject konnte nicht neu initialisiert werden! Grund: 
" + e.getMessage());
		logger.info("Da das Cms-Objekt nicht erzeugt werden konnte, erfolgt 
nun ein Redirect nach /.");
		throw new PleaseRedirectNowException();
	}

	/* ... */
}

I am trying to login the user with the specified password from a 
handler. I get a CmsObject that is correctly initialized, contains the 
logged in user and looks pretty good. However, after redirect to the 
requested (restricted) resource, I "arrive" there as the Guest user. 
This happens because the CmsUUID sessionId is obviously NOT correctly 
stored into the HTTP Session, from where OpenCms tries to read it while 
initializing the CmsObject for the request to the restricted resource.

If I do all this through a CmsJspActionElement and then 
action.getCmsObject().loginUser(...) the session registration works 
fine. However, inside a handler, I'm completely unable to get hold of a 
CmsJspActionElement because there is no JSP associated with the request. :-)

Anyone have a hint for me how to correctly implement this?

Regards,
Robert Spielmann

-- 
codecentric GmbH
Merscheider Str. 1
42699 Solingen

Büro:  +49 (212) 233628-42
Mobil: +49 (151) 14705709
Fax:   +49 (212) 233628-79

Mail:  spielmann at codecentric.de
Web:   http://www.codecentric.de
Blog:  http://blog.codecentric.de

Geschäftsführer: Mirko Novakovic, Rainer Vehns
Sitz der Gesellschaft: Solingen
Registergericht: Amtsgericht Wuppertal, HRB 19214

Diese E-Mail einschließlich evtl. angehängter Dateien enthält 
vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht 
der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, 
informieren Sie bitte sofort den Absender und löschen Sie diese E-Mail 
und evtl. anhängende Dateien umgehend. Das unerlaubte Kopieren, Nutzen 
oder Öffnen evtl. anhängender Dateien sowie die unbefugte Weitergabe 
dieser E-Mail ist nicht gestattet.



More information about the opencms-dev mailing list