KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tigris > scarab > pipeline > AnonymousLoginValve


1 package org.tigris.scarab.pipeline;
2
3 import java.io.IOException JavaDoc;
4 import java.util.HashSet JavaDoc;
5 import java.util.Set JavaDoc;
6
7 import org.apache.turbine.RunData;
8 import org.apache.turbine.TurbineException;
9 import org.apache.turbine.ValveContext;
10 import org.apache.turbine.pipeline.AbstractValve;
11 import org.tigris.scarab.om.ScarabUser;
12 import org.tigris.scarab.util.AnonymousUserUtil;
13 import org.tigris.scarab.util.Log;
14
15 /*
16  * This valve will try to automatically login an Anonymous user if there is no user authenticated.
17  * The user and password will be set in scarab.user.anonymous and scarab.anonymous.password
18  * If scarab.anonymous.userid does not exists, the valve will just pass control to the following
19  * through the pipeline.
20  *
21  */

22 public class AnonymousLoginValve extends AbstractValve
23 {
24     private final static Set JavaDoc nonAnonymousTargets = new HashSet JavaDoc();
25     private String JavaDoc userid = null;
26     private boolean anonymousAccessAllowed = false;
27     
28     /**
29      * Initilizes the templates that will not make an automatical
30      * anonymous login.
31      */

32     public void initialize() throws Exception JavaDoc
33     {
34         anonymousAccessAllowed = AnonymousUserUtil.anonymousAccessAllowed();
35         if (anonymousAccessAllowed) {
36             Log.get().info("anonymous Login enabled.");
37             userid = AnonymousUserUtil.getAnonymousUserId();
38             //nonAnonymousTargets.add("Index.vm");
39
//nonAnonymousTargets.add("Logout.vm");
40
//nonAnonymousTargets.add(conf.getProperty("template.login"));
41
//nonAnonymousTargets.add(conf.getProperty("template.homepage"));
42
nonAnonymousTargets.add("Register.vm");
43             nonAnonymousTargets.add("ForgotPassword.vm");
44         }
45         else
46         {
47             Log.get().info("anonymous Login disabled.");
48         }
49     }
50     
51     /*
52      * Invoked by the Turbine's pipeline, as defined in scarab-pipeline.xml
53      * @see org.apache.turbine.pipeline.AbstractValve#invoke(org.apache.turbine.RunData, org.apache.turbine.ValveContext)
54      */

55     public void invoke(RunData data, ValveContext context) throws IOException JavaDoc, TurbineException
56     {
57         String JavaDoc target = data.getTarget();
58         if (anonymousAccessAllowed && !nonAnonymousTargets.contains(target) && target.indexOf("help,") == -1)
59         {
60             // If there's no user, we will login as Anonymous.
61
ScarabUser user = (ScarabUser)data.getUserFromSession();
62             if (null == user || user.getUserId() == null || !user.hasLoggedIn())
63                 AnonymousUserUtil.anonymousLogin(data);
64         }
65         context.invokeNext(data);
66     }
67
68 }
69
Popular Tags