I'm pretty sure that this is the same thing I described you just wrote all the servlet
code yourself instead of having the jsp engine do it for you. That still leaves the
ugly and race condition problems I described. Am I wrong?
-Cavan
----- Original Message -----
From: "Jayson Yu" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, December 18, 2001 6:27 PM
Subject: Re: Session
> You are right, this is not very efficient, I strongly suggest using
> servlets. If you do you can
> place all user info you would possibly need in an httpsession.
>
> You can in fact create a new session after athentication, you can also
> create a class
> containing the attributes you want to save on each session (e.g. name,
> address, sex,
> access code etc.).
>
> For example:
>
> // this is your function to verify the user agains your DB
> if CheckUser(loginname, password)
> {
>
> HttpSession websession = request.getSession(true);
>
> // Sessions is a user made class that contains the
> // methods and properties you want the session to have.
> Sessions thissession = new Sessions();
>
> // 30 minutes
> websession.setMaxInactiveInterval(1800);
>
> String sessid;
>
> // Just replace this method with one of yours.
> sessid=GenericTools.generateRandomSessionCode(25);
>
> websession.putValue("mysession",thissession);
> ((Sessions)websession.getValue("mysession")).setSessionCode(sessid);
> ((Sessions)websession.getValue("mysession")).setName(login_name);
>
>
> }
>
>
> getting information from your session is equally easy:
>
> HttpSession websession = request.getSession(true);
> if (websession.getValue("mysession")!=null)
> {
>
>login_name=((Sessions)websession.getValue("mysession")).getName();
> }
>
> Of course your Sessions class must have the setSessionCode, setName and
> getName methods.
>
> Hope this helps.
>
> json
>
>
> At 05:41 PM 12/18/01 -0800, you wrote:
> >If anyone solves this it would be a great help to me as well. I am
> >currently using a clumsy work around that doesn't always work.
> >
> >I have a User object that contains a lot of information about the users
> >that could be very useful on various pages. I'd like to simply fill this
> >object and add it to the session upon authentication for later use. I
> >haven't found a way to do that yet.
> >
> >My work around is to do a pageContext.include() of a jsp that does the
> >following on every page.
> >
> > String name = request.getRemoteUser();
> > User user = (User)session.getAttribute("USER_OBJECT");
> > if(name!=null&&user==null) {
> > user = User.getUserByName(datasource, name);
> > session.setAttribute("USER_OBJECT", user);
> > }
> >
> >This has two problems though.
> >1) It's a waste of time to have to do this on every page.
> >2) It can create a race condition if the page it's include in needs to use
> >the User object immediately. If I do the following the User object
> >generally ends up being null.
> >
> > pageContext.include("login.jsp");
> > User user = (User)session.getAttribute("USER_OBJECT");
> >
> >I think the ability to do this properly would be a great help to a lot of
> >people and contribute to cleaner and faster servlet and jsp applications.
> >Being able to specify a method that takes the username and password to be
> >run on successful authentication would do it.
> >
> >-Cavan
> >
> >----- Original Message -----
> >From: "Jon Weinberg" <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Sent: Tuesday, December 18, 2001 4:08 PM
> >Subject: Session
> >
> >
> >I am running Tomcat 4.0 with form-based authentication. I would like to
> >add some user-specific variables into the session as soon as the user logs
> >in (that is, as soon as the user logs in, I want to get the username from
> >the form, use it to query my DB, put some results into the user's session,
> >and have the user continue on to the page he originally requested.)
> >
> >I have tried a number of solutions that don't work:
> >
> >1) I've tried having the login form's action send the info to a servlet
> >that does the processing and then forwards the request to
> >"j_security_check", but that solution only works in 3.2 and not in 4.0
> >
> >2) I have attached an HttpSessionListener, but since the session is
> >created before the user actually logs in, my listener does not yet have
> >the username and cannot complete the preprocessing.
> >
> >Is there a way for me to execute something right AFTER a user authenticates?
> >
> >Thanks,
> >Jon
> >
> >
> >
> >--
> >To unsubscribe: <mailto:[EMAIL PROTECTED]>
> >For additional commands: <mailto:[EMAIL PROTECTED]>
> >Troubles with the list: <mailto:[EMAIL PROTECTED]>
>
>
> --
> To unsubscribe: <mailto:[EMAIL PROTECTED]>
> For additional commands: <mailto:[EMAIL PROTECTED]>
> Troubles with the list: <mailto:[EMAIL PROTECTED]>
>
>
--
To unsubscribe: <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>