/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.server.service.admin.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.enonic.vertical.adminweb.AdminHelper;
import com.enonic.cms.core.security.PortalSecurityHolder;
import com.enonic.cms.core.security.SecurityService;
import com.enonic.cms.core.security.user.User;
public final class LoginCheckInterceptor
extends HandlerInterceptorAdapter
{
private SecurityService securityService;
@Autowired
public void setSecurityService( SecurityService securityService )
{
this.securityService = securityService;
}
@Override
public boolean preHandle( HttpServletRequest req, HttpServletResponse res, Object handler )
throws Exception
{
if ( securityService.getLoggedInPortalUser().isAnonymous() )
{
loginAdminWebUser( req );
}
if ( securityService.getLoggedInPortalUser().isAnonymous() )
{
res.sendRedirect( AdminHelper.getAdminPath( req, false ) );
return false;
}
return true;
}
private void loginAdminWebUser( HttpServletRequest request )
{
HttpSession session = request.getSession( false );
if ( session != null )
{
User adminUser = securityService.getLoggedInAdminConsoleUser();
if ( adminUser != null )
{
PortalSecurityHolder.setLoggedInUser( adminUser.getKey() );
}
}
}
}