Hi Jon,
You can just write your own auth module, overriding BaseInterceptor, and 
adding an entry to modules.xml or interceptors.xml.  This could be a 
little cleaner, as you don't have to add code to every servlet and jsp.
//steve

Jayson Yu wrote:

> 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]>

Reply via email to