blob: 7ed0e6ae9f091182d60f7e26b0d8fceca305d87d [file] [log] [blame]
package org.wyona.cms.cocoon.acting;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.Constants;
import org.apache.cocoon.acting.AbstractComplementaryConfigurableAction;
import org.apache.cocoon.environment.Redirector;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.util.Tokenizer;
import java.util.HashMap;
import java.util.Map;
/**
* @author Michael Wechner
* @created 2001.11.18
* @version 2001.12.10
*/
public abstract class AbstractAuthenticatorAction extends AbstractComplementaryConfigurableAction implements Configurable{
/**
*
*/
public void configure(Configuration conf) throws ConfigurationException{
super.configure(conf);
}
/**
*
*/
public Map act(Redirector redirector,SourceResolver resolver,Map objectModel,String src,Parameters parameters) throws Exception {
// Get request object
Request req=(Request)objectModel.get(Constants.REQUEST_OBJECT);
if(req == null){
getLogger().error ("No request object");
return null;
}
// Get session
Session session=req.getSession(true);
if(session == null){
getLogger().error("No session object");
return null;
}
if(authenticate(req,new HashMap())){
getLogger().error("Authentication succeeded");
HashMap actionMap=new HashMap();
actionMap.put("protected_destination",session.getAttribute("protected_destination"));
return actionMap;
}
getLogger().error("Authentication failed");
return null;
}
/**
*
*/
public abstract boolean authenticate(Request request,Map map) throws Exception;
}