How strange.  When I deliberately remove the eventSubmit_doLogin (or 
change it to something else,) I get the attached unhandled exception. 
However, everything functions as expected when I set it properly - I get 
sent back to login.vm if the userID or password is wrong.

Make sure eventSubmit_doLogin is getting set to something.  I wish I 
could duplicate the propblem.  (Also, it appears that turbine has to be 
shutdown and restart for it to re-read TR.props)

Will Stranathan

java.lang.NullPointerException
        at java.util.Hashtable.containsKey(Hashtable.java(Compiled Code))
        at 
org.apache.turbine.services.template.TurbineTemplateService.getLayoutTemplateName(TurbineTemplateService.java:283)
        at 
org.apache.turbine.services.template.TurbineTemplate.getLayoutTemplateName(TurbineTemplate.java:85)
        at 
org.apache.turbine.modules.pages.TemplatePage.doBuildAfterAction(TemplatePage.java:141)
        at org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:157)
        at org.apache.turbine.modules.Page.build(Page.java:92)
        at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:122)
        at org.apache.turbine.Turbine.doGet(Turbine.java:372)
        at org.apache.turbine.Turbine.doPost(Turbine.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
        at org.apache.tomcat.core.Handler.service(Handler.java:286)
        at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
        at 
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:799)
        at org.apache.tomcat.core.ContextManager.service(ContextManager.java:745)
        at 
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
        at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:407)
        at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
        at java.lang.Thread.run(Thread.java:498)


Martin Poeschl wrote:

> i'm frustrated!!!!
> 
> my velocity login app still does not work ... i am able to login now,
> but if i login with a wrong username/password the index.vm is shown ...
> i would expect login.vm to be shown again ...
> 
> here is my LoginUser.java
> 
> package org.test.login.modules.actions;
> 
> import org.apache.velocity.Context;
> 
> import org.apache.turbine.modules.actions.VelocityAction;
> import org.apache.turbine.om.security.User;
> import org.apache.turbine.util.RunData;
> import org.apache.turbine.services.security.TurbineSecurity;
> import org.apache.turbine.services.resources.TurbineResources;
> import org.apache.turbine.util.security.TurbineSecurityException;
> 
> public class LoginUser extends VelocityAction
> {
>     public void doLogin(RunData data, Context context)
>         throws Exception
>     {
>         // This prevents a db hit on second Action call during page
>         // generation.  Turbine removes everything from the Session
>         // before calling this method, so in this case we should
>         // continue on with the Login procedure.
> 
>         if ( data.getUserFromSession() != null )
>         {
>             return;
>         }
> 
>         String username = data.getParameters().getString ( "username",
> "" );
>         String password = data.getParameters().getString ( "password",
> "" );
> 
>         User user = null;
>         try
>         {
>             // Authenticate the user and get the object.
>             user = TurbineSecurity.getAuthenticatedUser( username,
> password );
> 
>             // Store the user object.
>             data.setUser(user);
> 
>             // Mark the user as being logged in.
>             user.setHasLoggedIn(new Boolean(true));
> 
>             // Set the last_login date in the database.
>             user.updateLastLogin();
> 
>             // This only happens if the user is valid; otherwise, we
>             // will get a valueBound in the User object when we don't
>             // want to because the username is not set yet.  Save the
>             // User object into the session.
>             data.save();
>         }
>         catch ( TurbineSecurityException e )
>         {
>             System.out.println(e.getMessage());
>             data.setMessage(TurbineResources.getString("login.error"));
>             // Retrieve an anonymous user.
>             data.setUser (TurbineSecurity.getAnonymousUser());
>             setTemplate (data,
> TurbineResources.getString("template.login"));
>         }
>     }
> 
>     /**
>      * This is used in the event that doLogin above fails.
>      */
>     public void doPerform(RunData data, Context context)
>         throws Exception
>     {
>         data.setMessage("Can't find the button!");
>         // Retrieve an anonymous user.
>         data.setUser (TurbineSecurity.getAnonymousUser());
>         setTemplate (data,
> TurbineResources.getString("template.login"));
>     }
> }
> 
> 
> in TR.properties
> 
> template.login = login.vm
> 
> please help!!!!
> 
> 
> 
> 
> ------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
> Problems?:           [EMAIL PROTECTED]



------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to