| 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; |
| } |