litesoft
@ 151
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.servlets; import java.io.*; import javax.servlet.http.*; import org.litesoft.util.template.*; public abstract class AuthenticatedTemplateServlet extends TemplateServlet { protected AuthenticatedTemplateServlet( String pCSShref, String... pJSsrcs ) { super( pCSShref, pJSsrcs ); } @Override protected final TemplateControl resolveQuery( HttpServletRequest pRequest, String pQuery, HttpServletResponse pResponse, HttpSession pSession ) throws IOException { String zUserIdCookie = CookieAuthenticator.get( pRequest ); UserAuthenticationService zUserAuthenticationService = UserAuthenticationService.getInstance( this ); AuthenticationObject zAO = AuthenticationObject.get( pSession ); if ( zAO.isAuthenticated() ) { TemplateControl zTC = resolveQuery( pRequest, pQuery, pResponse, zAO ); if ( !zTC.isForwardTo() && zAO.isAuthenticated() && (zUserIdCookie == null) ) { CookieAuthenticator.set( pResponse, zUserAuthenticationService.createCookieForUser( zAO.getUserName() ) ); } return zTC; } if ( zUserIdCookie != null ) { String zUserName = zUserAuthenticationService.getUserForCookie( zUserIdCookie ); if ( zUserName != null ) { zAO.setUserName( zUserName ); zAO.setAuthenticated( true ); return resolveQuery( pRequest, pQuery, pResponse, zAO ); } } String zURI = pRequest.getRequestURI(); zAO.setTarget( zURI ); return new TemplateControl( "LoginPageServlet" ); } abstract protected TemplateControl resolveQuery( HttpServletRequest pRequest, String pQuery, HttpServletResponse pResponse, AuthenticationObject pAO ) throws IOException; } |