KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nemesis > forum > webapp > admin > tag > CheckLogonTag


1 /*
2  * $Header: /cvsroot/nemesis-forum/forum/WEB-INF/src/forum-web-admin/org/nemesis/forum/webapp/admin/tag/CheckLogonTag.java,v 1.1 2003/05/05 07:59:06 davidlaurent Exp $
3  * $Revision: 1.1 $
4  * $Date: 2003/05/05 07:59:06 $
5  *
6  * ====================================================================
7  *
8  * The Apache Software License, Version 1.1
9  *
10  * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
11  * reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions
15  * are met:
16  *
17  * 1. Redistributions of source code must retain the above copyright
18  * notice, this list of conditions and the following disclaimer.
19  *
20  * 2. Redistributions in binary form must reproduce the above copyright
21  * notice, this list of conditions and the following disclaimer in
22  * the documentation and/or other materials provided with the
23  * distribution.
24  *
25  * 3. The end-user documentation included with the redistribution, if
26  * any, must include the following acknowlegement:
27  * "This product includes software developed by the
28  * Apache Software Foundation (http://www.apache.org/)."
29  * Alternately, this acknowlegement may appear in the software itself,
30  * if and wherever such third-party acknowlegements normally appear.
31  *
32  * 4. The names "The Jakarta Project", "Struts", and "Apache Software
33  * Foundation" must not be used to endorse or promote products derived
34  * from this software without prior written permission. For written
35  * permission, please contact apache@apache.org.
36  *
37  * 5. Products derived from this software may not be called "Apache"
38  * nor may "Apache" appear in their names without prior written
39  * permission of the Apache Group.
40  *
41  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
42  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
43  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
44  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
45  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
46  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
47  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
48  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
49  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
50  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
51  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
52  * SUCH DAMAGE.
53  * ====================================================================
54  *
55  * This software consists of voluntary contributions made by many
56  * individuals on behalf of the Apache Software Foundation. For more
57  * information on the Apache Software Foundation, please see
58  * <http://www.apache.org/>.
59  *
60  */

61
62
63 package org.nemesis.forum.webapp.admin.tag;
64
65
66 import javax.servlet.http.HttpSession JavaDoc;
67 import javax.servlet.jsp.JspException JavaDoc;
68 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
69
70 import org.apache.struts.config.ModuleConfig;
71 import org.nemesis.forum.webapp.admin.Constants;
72
73
74 /**
75  * Check for a valid User logged on in the current session. If there is no
76  * such user, forward control to the logon page.
77  *
78  * @author Craig R. McClanahan
79  * @author Marius Barduta
80  * @version $Revision: 1.1 $ $Date: 2003/05/05 07:59:06 $
81  */

82
83 public final class CheckLogonTag extends TagSupport JavaDoc {
84
85
86     // --------------------------------------------------- Instance Variables
87

88
89     /**
90      * The key of the session-scope bean we look for.
91      */

92     private String JavaDoc name = Constants.USER_KEY;
93
94
95     /**
96      * The page to which we should forward for the user to log on.
97      */

98     private String JavaDoc page = "/frameset.do";
99
100
101     // ----------------------------------------------------------- Properties
102

103
104     /**
105      * Return the bean name.
106      */

107     public String JavaDoc getName() {
108
109     return (this.name);
110
111     }
112
113
114     /**
115      * Set the bean name.
116      *
117      * @param name The new bean name
118      */

119     public void setName(String JavaDoc name) {
120
121     this.name = name;
122
123     }
124
125
126     /**
127      * Return the forward page.
128      */

129     public String JavaDoc getPage() {
130
131     return (this.page);
132
133     }
134
135
136     /**
137      * Set the forward page.
138      *
139      * @param page The new forward page
140      */

141     public void setPage(String JavaDoc page) {
142
143     this.page = page;
144
145     }
146
147
148     // ------------------------------------------------------- Public Methods
149

150
151     /**
152      * Defer our checking until the end of this tag is encountered.
153      *
154      * @exception JspException if a JSP exception has occurred
155      */

156     public int doStartTag() throws JspException JavaDoc {
157
158     return (SKIP_BODY);
159
160     }
161
162
163     /**
164      * Perform our logged-in user check by looking for the existence of
165      * a session scope bean under the specified name. If this bean is not
166      * present, control is forwarded to the specified logon page.
167      *
168      * @exception JspException if a JSP exception has occurred
169      */

170     public int doEndTag() throws JspException JavaDoc {
171
172     // Is there a valid user logged on?
173
boolean valid = false;
174     
175     HttpSession JavaDoc session = pageContext.getSession();
176     if ((session != null) && (session.getAttribute(name) != null))
177         valid = true;
178
179     // Forward control based on the results
180
if (valid)
181         return (EVAL_PAGE);
182     else {
183             ModuleConfig config = (ModuleConfig) pageContext.getRequest()
184                 .getAttribute(org.apache.struts.Globals.MODULE_KEY);
185             try {
186                 
187                 pageContext.forward(/*config.getPrefix() +*/ page);
188             } catch (Exception JavaDoc e) {
189                 e.printStackTrace();
190             throw new JspException JavaDoc(e.toString());
191             }
192         return (SKIP_PAGE);
193     }
194
195     }
196
197
198     /**
199      * Release any acquired resources.
200      */

201     public void release() {
202
203         super.release();
204         this.name = Constants.USER_KEY;
205         this.page = "/frameset.do";
206
207     }
208
209
210 }
211
Popular Tags