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