Uhhm found the problem -

@Persist("session") is not same as
@InjectState("user")

?

When i switched over to  @InjectState("user") it worked as expected.


On 12/27/06, karthik G <[EMAIL PROTECTED]> wrote:

thanks Robert!

This is what I have in my code -

public boolean isSecureAccess(){

 StateObjectManager userManager = soReg.get("user");
 if(userManager != null){
        System.out.println ("\n\n\n+++++++LoginStatusDeterminer  --> "
                    + userManager.exists());
           //this returns false
           return userManager.exists();
  }else{
          return false;
   }

}

and this is the entry in hivemodule.xml

    <contribution configuration-id="tapestry.state.ApplicationObjects">
        <state-object name="user" scope="session">
            <create-instance class="com.xyz.web.common.User"/>
        </state-object>
    </contribution>

In the Home page i persisted the user to the session

@Persist("client")
abstract void setUser(User user);

After that when isSecureAccess is called by the PageValdiationListener of
the next page,
userManager.exists();       returns false! even though the User object was
set in the session in the Home page form submit listener.

Any idea why StateObjectManager is not returning 'true' ?

thanks,
Karthik



On 12/27/06, Robert Binna < [EMAIL PROTECTED]> wrote:
>
> You could use the
>
> StateObjectManagerRegistry
>
> inject it into your service and can then call:
>
> StateObjectManager manager = (StateObjectManager) registry.get
> (<yourstate>);
>
> on the manager you can obtain your State Object by
>    manager.get()
>
> I think this should work
>
> Kind regards,
>              Robert
>
> karthik G schrieb:
>
> > WoW!, i downloaded tapestry-acegi code. Used some ideas from there for
> > implementing my stuff..and it works like a charm.
> >
> > But can someone tell me how can I programmatically look up hivemind
> and
> > query if a bean by the name"user" has been instantiated in the
> specified
> > scope?
> >
> >    <contribution configuration-id=" tapestry.state.ApplicationObjects
> ">
> >        <state-object name="user" scope="session">
> >            <create-instance class="com.xyz.web.common.User"/>
> >        </state-object>
> >    </contribution>
> >
> > thanks,
> > Karthik
> >
> >
> >
> > On 12/27/06, karthik G <[EMAIL PROTECTED]> wrote:
> >
> >>
> >> Thanks james/ron,
> >>
> >> I finally gathered some courage to look at the source code :)
> >> Ok I just want to check for the presence of the User object in the
> >> session
> >> in my ClassAnnotationEnhancementWorker. I basically need a
> >> InjectStateFlag kind of functionality in my Worker (not the page)
> >> where i
> >> can check  if the 'user' object is already present in the session.
> >> Then i want to throw PageRedirect to Login page...usual stuff.
> >> Am not actually *enhancing* the Page as in ..am not doing any nifty
> byte
> >> code generation stuff.
> >>
> >> Since I cannot use @InjectState within my Worker? , I need to figure
> it
> >> out myself by querying hivemind.xml?  - so basically my Worker needs
> >> to be
> >> aware of say the "user" configured in hivemodule.xml
> >>
> >> How can I query the hivemind and ask if the hivemind container
> >> contains an
> >> instance of "user" in "session" scope already. I dont want it to
> >> instantiate
> >> "user" though.
> >>
> >> Or the only way to throw a PageRedirect is to dynamically enhance the
>
> >> Page
> >> by making it implement PageValidateListener?
> >>
> >> Sorry for such basic questions.
> >>
> >> thanks
> >> Karthik
> >>
> >>
> >>
> >>
> >> On 12/23/06, James Carman <[EMAIL PROTECTED]> wrote:
> >> >
> >> > The tapestry-acegi library does exactly this.  When it sees an
> Acegi
> >> > @Secured annotation on a class/method, it uses a worker to enhance
> the
> >> > class.  So, you can either use what I've already created or refer
> to
> >> > the source to see how to do what you want.  If you have any
> questions
> >> > about the code, don't hesitate to ask.  Hope that helps.
> >> >
> >> > On 12/22/06, RonPiterman < [EMAIL PROTECTED] > wrote:
> >> > > yes, workers are part of 4.0.2 - and the code is very clear, and
> one
> >> > can
> >> > > learn alot from it - howard has a *very* nice programming style,
> so
> >> > its
> >> > > worth taking a look.
> >> > >
> >> > > I would look at the wiki, but I don't know if there are any
> >> > > tutorials/docu around for this. It is quite advanced staff, but
> its
> >> > not
> >> > > that hard.
> >> > >
> >> > > Cheers,
> >> > > Ron
> >> > >
> >> > >
> >> > >
> >> > > karthik G wrote:
> >> > > > thanks Ron. Currently am with going the way (subclassing a
> >> > securedpage) as
> >> > > > suggested by Dennis. Its simple and works.
> >> > > > But am interested in the workers that you mention. Is looking
> >> at the
> >> > source
> >> > > > code the only option at this point to write some workers?. Are
> >> there
> >> > any
> >> > > > docs somewhere?
> >> > > > Btw are workers part of 4.0.2
> >> > > >
> >> > > > thanks,
> >> > > > Karthik
> >> > > >
> >> > > >
> >> > > > On 12/21/06, Ron Piterman < [EMAIL PROTECTED]> wrote:
> >> > > >>
> >> > > >> yes, there is a configurable annotation workers, so you can
> >> > > >> create/extend/override page methods when tapestry is preparing
>
> >> the
> >> > > >> page/component class.
> >> > > >>
> >> > > >> You can create your own class worker which will add the needed
> >> > logic to
> >> > > >> the mentioned attach event.
> >> > > >>
> >> > > >> Take a look at the annotations module code and hivemind
> >> > configuration.
> >> > > >>
> >> > > >> Cheers,
> >> > > >> Ron
> >> > > >>
> >> > > >>
> >> > > >>
> >> > > >> karthik G wrote:
> >> > > >> > I just want to add an annotation on the page and then take
> some
> >> > action
> >> > > >> when
> >> > > >> > the page is being bound to a request from the page pool.
> >> > > >> >
> >> > > >> > @SecuredPage
> >> > > >> > abstract class MyPage extends BasePage{
> >> > > >> >
> >> > > >> > }
> >> > > >> >
> >> > > >> > Is there anyways i can hook into T4's page creation process
> and
> >> > then
> >> > > >> > depending upon the annotation take some action? For e.g in
> the
> >> > above
> >> > > >> > case, I
> >> > > >> > just want to be able to check for a user object in the
> session
> >> > and
> >> > > >> redirect
> >> > > >> > to login page.
> >> > > >> >
> >> > > >> > I looked at PageAttachListener and it looks nice. But I dont
>
> >> want
> >> > to
> >> > > >> > implement that in my page but would like to attach a
> >> listener to
> >> > T4
> >> > > >> itself.
> >> > > >> >
> >> > > >> > thanks,
> >> > > >> > Karthik
> >> > > >> >
> >> > > >>
> >> > > >>
> >> > > >>
> >> >
> ---------------------------------------------------------------------
> >> > > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > > >> For additional commands, e-mail:
> [EMAIL PROTECTED]
> >> > > >>
> >> > > >>
> >> > > >
> >> > >
> >> > >
> >> > >
> >> ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >> > >
> >> > >
> >> >
> >> >
> ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >> >
> >>
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to