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]