Hmm... Without knowing all of the details I'd say you'd have to do something
like:

-) Add your annotation enhancement worker to the hivemind configuration
point for annotation workers.

-) Based on the annotation values passed in, decide if you want to enhance
the class right there , or choose to delegate the work to a hivemind
service.

It sounds like you are going for delegation, so you'd need to look at some
of the other annotation or normal enhancement workser for reference on how
to add an injected field. (InjectObjectWorker sounds like a good candidate
for browsing no? )

-) I have no idea what your helper classes signature is like for what
input/output the methods have but then you'll need to look at the IComponent
or IPage/page listener interfaces to decide what makes the most sense for
your use case.

-) There are enhancement workers that handle the page event listeners
already, as well as tons that do the pageLoad stuff so that should handle
that right?

-) The Direct/any engine services are pretty damn easy to intercept now
because all of them call "triggerComponent" (or something like that) to
actually invoke a listener.



On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:

So, where would I put the logic to add a PageValidateListener to the page
if
it has a @Secure annotation?  I plan on using
EnhancementOperation.extendMethodImplementation(), but I don't know what
signature to pass.  I've got a special class that does validation based on
@Secure annotations and I need to know how to hook it to my page.

-----Original Message-----
From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 07, 2006 3:25 PM
To: Tapestry development
Subject: Re: Permissions Mapping...

You're awesome!! Between hibernate and acegi you're filling in two of the
biggest holes we've had. (beside maybe cleaning up the site and some
documentation ..cough )

On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
>
> Well, hopefully Acegi support will be done soon.  So, we can put that to
> rest. :-)
>
> -----Original Message-----
> From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, June 07, 2006 3:16 PM
> To: Tapestry development
> Subject: Re: Permissions Mapping...
>
> Glad I could be helpful :) The one added bonus of all the recent work
> being
> done in tapestry is that I feel pretty comforatable being able to
> maintain/enhance the tapestry4 series now.
>
> Hopefully when 4.1 is done coming out we can all attack the
bugs/features
> that have been annoying everyone for so long.
>
> On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
> >
> > Okay, great.  As always, thanks for your help! :-)
> >
> >
> > -----Original Message-----
> > From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, June 07, 2006 3:01 PM
> > To: Tapestry development
> > Subject: Re: Permissions Mapping...
> >
> > Tons of things contribute to the pageLoaded method..There's also my
new
> > Render chain that gets called after any component renders. (ie after
> > renderComponent) . I would look at the pageLoaded method enhancers..I
> > think
> > anything dealing with injection/properties does this. (not in
> annotations,
> > in org.apache.tapestry.enahance)
> >
> > On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
> > >
> > > I'm looking for something that implements/overrides a method, but
> > doesn't
> > > "claim" it.
> > >
> > > -----Original Message-----
> > > From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
> > > Sent: Wednesday, June 07, 2006 2:27 PM
> > > To: Tapestry development
> > > Subject: Re: Permissions Mapping...
> > >
> > > EventListener . Yeah I think there are some enchancers that run for
it
> > > (later, not in the annotation src though)... It's kind of up to you
if
> > you
> > > need to enhance anything or not ;) (Personally I'd probably just use
> the
> > > annotations to provide a global cached sort of data lookup that some
> > other
> > > service could then use to do security stuff...Or somethin like that
;)
> )
> > >
> > > On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Which ones?  I assume there are enhancers that take care of them,
> too.
> > > :-)
> > > >
> > > > -----Original Message-----
> > > > From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
> > > > Sent: Wednesday, June 07, 2006 2:18 PM
> > > > To: Tapestry development
> > > > Subject: Re: Permissions Mapping...
> > > >
> > > > I just added some method level annotations into tapestry4/trunk if
> > that
> > > > helps...
> > > >
> > > > On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Howard,
> > > > >
> > > > > Cool idea and I was considering it too.  But, would there be a
> nice
> > > way
> > > > to
> > > > > specify this without using annotations?  I'm not really against
> > them,
> > > > but
> > > > > some users get turned off by it.  Also, do you have some example
> > code
> > > > > somewhere that I could "borrow"?  Javassist isn't the easiest
> thing
> > in
> > > > the
> > > > > world, you know. :-)
> > > > >
> > > > > James
> > > > >
> > > > > -----Original Message-----
> > > > > From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
> > > > > Sent: Wednesday, June 07, 2006 2:06 PM
> > > > > To: Tapestry development
> > > > > Subject: Re: Permissions Mapping...
> > > > >
> > > > > What I did was create a @Privileged annotation.  The annotation
> > value
> > > > was
> > > > > the name of the required role. You could attach this method to
> > > classes,
> > > > or
> > > > > to methods.  @Privileged is inherited, and @Privileged("") means
> no
> > > > > special
> > > > > privilege required.
> > > > >
> > > > > For classes, it implemented/extended PageValidateListener to
check
> > the
> > > > > permission.
> > > > >
> > > > > For methods, it overrided the method to add a check before
> invoking
> > > > > super().
> > > > >
> > > > > I extended Tapestry class and method annotation workers to
handle
> > > these
> > > > > annotations.
> > > > >
> > > > > Worked like a charm.
> > > > >
> > > > > This approach puts the logic right into the pages or methods,
> which
> > is
> > > > > where
> > > > > I think it belongs.
> > > > >
> > > > > On 6/7/06, James Carman <[EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > > All,
> > > > > >
> > > > > > You guys are the experts.  I have a design question.  I am
> > creating
> > > a
> > > > > > tapestry/acegi integration package (parts of it are already
> > > > done).  What
> > > > > I
> > > > > > need to figure out is how to decide what roles an in-coming
> > request
> > > > > > requires?  If it's a PageService request, I can check the page
> > class
> > > > for
> > > > > a
> > > > > > @RequiredRole annotation.  If it's a DirectService request, I
> can
> > > > check
> > > > > > the
> > > > > > method for a @RequiredRole annotation.  But, how do I do this
in
> a
> > > > > general
> > > > > > way?  Any ideas?
> > > > > >
> > > > > > James
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > >
---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Howard M. Lewis Ship
> > > > > Independent J2EE / Open-Source Java Consultant
> > > > > Creator and PMC Chair, Apache Tapestry
> > > > > Creator, Jakarta HiveMind
> > > > >
> > > > > Professional Tapestry training, mentoring, support
> > > > > and project work.  http://howardlewisship.com
> > > > >
> > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Jesse Kuhnert
> > > > Tacos/Tapestry, team member/developer
> > > >
> > > > Open source based consulting work centered around
> > > > dojo/tapestry/tacos/hivemind.
> > > >
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > > --
> > > Jesse Kuhnert
> > > Tacos/Tapestry, team member/developer
> > >
> > > Open source based consulting work centered around
> > > dojo/tapestry/tacos/hivemind.
> > >
> > >
> > >
> > >
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > --
> > Jesse Kuhnert
> > Tacos/Tapestry, team member/developer
> >
> > Open source based consulting work centered around
> > dojo/tapestry/tacos/hivemind.
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Jesse Kuhnert
> Tacos/Tapestry, team member/developer
>
> Open source based consulting work centered around
> dojo/tapestry/tacos/hivemind.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind.

Reply via email to