/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.web.portal.interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.common.collect.Lists;
import com.enonic.cms.web.portal.PortalWebContext;
@Component
public final class RequestInterceptorChainImpl
implements RequestInterceptorChain
{
private AutoLoginInterceptor autoLoginInterceptor;
private BasicAuthInterceptor basicAuthInterceptor;
private HttpInterceptorInterceptor httpInterceptorInterceptor;
private InstantTraceInterceptor instantTraceInterceptor;
private Iterable<RequestInterceptor> getChain()
{
return Lists.newArrayList( this.autoLoginInterceptor, this.basicAuthInterceptor, this.httpInterceptorInterceptor,
this.instantTraceInterceptor );
}
@Override
public boolean preHandle( final PortalWebContext context )
throws Exception
{
for ( final RequestInterceptor entry : getChain() )
{
if ( !entry.preHandle( context ) )
{
return false;
}
}
return true;
}
@Override
public void postHandle( final PortalWebContext context )
throws Exception
{
for ( final RequestInterceptor entry : getChain() )
{
entry.postHandle( context );
}
}
@Autowired
public void setAuthLoginInterceptor( final AutoLoginInterceptor interceptor )
{
this.autoLoginInterceptor = interceptor;
}
@Autowired
public void setBasicAuthInterceptor( final BasicAuthInterceptor interceptor )
{
this.basicAuthInterceptor = interceptor;
}
@Autowired
public void setHttpInterceptorInterceptor( final HttpInterceptorInterceptor interceptor )
{
this.httpInterceptorInterceptor = interceptor;
}
@Autowired
public void setInstantTraceInterceptor( final InstantTraceInterceptor instantTraceInterceptor )
{
this.instantTraceInterceptor = instantTraceInterceptor;
}
}