Hi John,

 

You seem to have a number of problems. Firstly, you are checking for a logon on the logon page. As you want yet have a logon you will simply be returned to the same page. Not what you want ! Remove the checkLogon tag from your logon page !

 

Jon

 

-----Original Message-----
From: John McClain [mailto:[EMAIL PROTECTED]]
Sent: 21 June 2001 19:05
To: [EMAIL PROTECTED]
Subject: checkLogonTag question

 

Howdy,

I took the example app, gutted it, and am trying to piece it all together manually so that I understand what is going on. All was going well till I got to the tag <app:checkLogon/>. When I tried to bring up logon.jsp, I got into an infinite error loop. I am enclosing the jsp page, the checklogontag.java AND the error output. Without the checklogontag, the app works fine. It really is very simple at this point.

Is there anyone out there that can explain why the error AND, in the example app, why the <app:checkLogon/> is enclosed within a <logic:equal> tag? - does it have to be??? - the code doesn't seem to suggest that, but I am getting this error...

help!

 

**************************************   logon.jsp  
<%@ page language="java" %>

 

<%@ taglib uri="/WEB-INF/app.tld" prefix="app" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:errors/>
<app:checkLogon/>
 Logon with username "test" and password "test".<br /><br />

 

 <html:form action="logon.do">

 


  Username: <html:text property="username" /><br />
 
  Password: <html:password property="password" /><br />
 
  
  <html:submit value="Logon" />
 
 </html:form>

 

**************************************   CheckLogonTag.java   
/*
 * $Header: /home/cvspublic/jakarta-struts/src/example/org/apache/struts/example/CheckLogonTag.java,v 1.5 2001/02/02 02:26:06 craigmcc Exp $
 * $Revision: 1.5 $
 * $Date: 2001/02/02 02:26:06 $
 *
 * ====================================================================
 *
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution, if
 *    any, must include the following acknowlegement:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowlegement may appear in the software itself,
 *    if and wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
 *    Foundation" must not be used to endorse or promote products derived
 *    from this software without prior written permission. For written
 *    permission, please contact [EMAIL PROTECTED].
 *
 * 5. Products derived from this software may not be called "Apache"
 *    nor may "Apache" appear in their names without prior written
 *    permission of the Apache Group.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */

 


package logon;

 


import java.io.IOException;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.struts.action.Action;
import org.apache.struts.util.BeanUtils;
import org.apache.struts.util.MessageResources;

 


/**
 * Check for a valid User logged on in the current session.  If there is no
 * such user, forward control to the logon page.
 *
 * @author Craig R. McClanahan
 * @author Marius Barduta
 * @version $Revision: 1.5 $ $Date: 2001/02/02 02:26:06 $
 */

 

public final class CheckLogonTag extends TagSupport {

 


    // --------------------------------------------------- Instance Variables

 


    /**
     * The key of the session-scope bean we look for.
     */
    private String name = Constants.USER_KEY;

 


    /**
     * The page to which we should forward for the user to log on.
     */
    private String page = "/logon.jsp";

 


    // ----------------------------------------------------------- Properties

 


    /**
     * Return the bean name.
     */
    public String getName() {

 

 return (this.name);

 

    }

 


    /**
     * Set the bean name.
     *
     * @param name The new bean name
     */
    public void setName(String name) {

 

 this.name = name;

 

    }

 


    /**
     * Return the forward page.
     */
    public String getPage() {

 

 return (this.page);

 

    }

 


    /**
     * Set the forward page.
     *
     * @param page The new forward page
     */
    public void setPage(String page) {

 

 this.page = page;

 

    }

 


    // ------------------------------------------------------- Public Methods

 


    /**
     * Defer our checking until the end of this tag is encountered.
     *
     * @exception JspException if a JSP exception has occurred
     */
    public int doStartTag() throws JspException {

 

 return (SKIP_BODY);

 

    }

 


    /**
     * Perform our logged-in user check by looking for the existence of
     * a session scope bean under the specified name.  If this bean is not
     * present, control is forwarded to the specified logon page.
     *
     * @exception JspException if a JSP exception has occurred
     */
    public int doEndTag() throws JspException {

 

 // Is there a valid user logged on?
 boolean valid = false;
 HttpSession session = pageContext.getSession();
 if ((session != null) && (session.getAttribute(name) != null))
     valid = true;
  System.out.println("valid = " + valid + " name = " + name + "eval_page = " + EVAL_PAGE + " skip_page = " + SKIP_PAGE + "******************************************");
 // Forward control based on the results
 if (valid)
     return (EVAL_PAGE);
 else {
     try {
        System.out.println("in try block before forward to page " + page);
  pageContext.forward(page);
     } catch (Exception e) {
        System.out.println(" before JspException throw");
  throw new JspException(e.toString());
     }
     return (SKIP_PAGE);
 }

 

    }

 


    /**
     * Release any acquired resources.
     */
    public void release() {

 

        super.release();
        this.name = Constants.USER_KEY;
        this.page = "/logon.jsp";

 

    }

 


}
**************************************   Standard Output From Tomcat  
2001-06-21 01:26:12 - Ctx( /strutstest ): Get real path /logon.jsp /home/jmcclain/dev/strutstest/logon.jsp /home/jmcclain/dev/strutstest
2001-06-21 01:26:12 - Ctx( /strutstest ): Get real path /logon.jsp /home/jmcclain/dev/strutstest/logon.jsp /home/jmcclain/dev/strutstest
2001-06-21 01:26:12 - Ctx( /strutstest ): Get real path /logon.jsp /home/jmcclain/dev/strutstest/logon.jsp /home/jmcclain/dev/strutstest
2001-06-21 01:26:12 - Ctx( /strutstest ): Get real path /logon.jsp /home/jmcclain/dev/strutstest/logon.jsp /home/jmcclain/dev/strutstest
valid = false name = usereval_page = 6 skip_page = 5******************************************
in try block before forward to page /logon.jsp
2001-06-21 01:26:12 - Ctx( /strutstest ): Get real path /logon.jsp /home/jmcclain/dev/strutstest/logon.jsp /home/jmcclain/dev/strutstest
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key dispatcher.forwardException
        at java.util.ResourceBundle.getObject(ResourceBundle.java:322)
        at java.util.ResourceBundle.getString(ResourceBundle.java:298)
        at org.apache.tomcat.util.StringManager.getString(StringManager.java:136)
        at org.apache.tomcat.util.StringManager.getString(StringManager.java:155)
        at org.apache.tomcat.util.StringManager.getString(StringManager.java:194)
        at org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:211)
        at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:421)
        at logon.CheckLogonTag.doEndTag(CheckLogonTag.java:187)
        at _0002flogon_0002ejsplogon_jsp_4._jspService(_0002flogon_0
....
....
....
.
.
.
.

 

 

 

 

John and Michelle McClain
7604 Muschetto Ct.
Citrus Heights, Ca. 95621
(916)728-5223

Reply via email to