Yeah I'll get everything together along with a short document/tutorial. Give
me a few days for that.
Animesh
On Mon, Sep 22, 2008 at 6:18 PM, Les Hazlewood <[EMAIL PROTECTED]> wrote:
> Cool!
>
> Could you give us a summary of everything that is required to get up
> and running in Guice? I can add this to a tutorial. If you needed to
> write any code also, that'd be great to have. :)
>
> Thanks!
>
> Les
>
> On Mon, Sep 22, 2008 at 8:41 AM, Animesh Jain <[EMAIL PROTECTED]>
> wrote:
> > Umm.. i made a very stupid mistake which I just found. All's working well
> > now. Sorry for bothering :P
> >
> > So Les it seems its pretty easy to integrate annotation with Guice, just
> one
> > lie config needed.
> >
> > Cheers
> > Animesh
> >
> > On Mon, Sep 22, 2008 at 6:01 PM, Animesh Jain <[EMAIL PROTECTED]>
> wrote:
> >>
> >> Although it appears that the role check is working. Because the
> annotated
> >> method is not executing when the roles do not match. But no error is
> being
> >> thrown and the debugger is not reaching the
> >> AopAllianceAnnotationsAuthorizingMethodInterceptor class. I've even put
> a
> >> System.out there and it only prints when the roles match, so its not a
> >> debugger problem.
> >>
> >> I'm lost.
> >>
> >> Animesh
> >>
> >> On Mon, Sep 22, 2008 at 5:36 PM, Animesh Jain <[EMAIL PROTECTED]>
> >> wrote:
> >>>
> >>> Yes Jeremy, you're right. It works with a slight modification (but..
> not
> >>> fully, which I'll explain below) -
> >>>
> >>> bindInterceptor(Matchers.any(),
> >>> Matchers.annotatedWith(RequiresRoles.class), new
> >>> AopAllianceAnnotationsAuthorizingMethodInterceptor());
> >>>
> >>> Basically Guice supports the AOP Alliance api, so
> >>> RoleAnnotationMethodInterceptor and
> PermissionAnnotationMethodInterceptor
> >>> cannot be bound directly as they are not implementing the alliance
> api's
> >>> method interceptor. But I think Les has written
> >>> AopAllianceAnnotationsAuthorizingMethodInterceptor for this very
> purpose.
> >>>
> >>> Now lets come to the problem.. when I login with a user who has a role
> >>> (lets say "person") and call a method with the annotation
> >>> RequiresRole("person"), then the
> >>> AopAllianceAnnotationsAuthorizingMethodInterceptor is getting called
> and the
> >>> call is infact going all the way upto RoleAnnotationMethodInterceptor
> as
> >>> expected. But if the role is something else then it is supposed to
> throw a
> >>> runtime error, which is not happening, the control is not even coming
> to
> >>> AopAllianceAnnotationsAuthorizingMethodInterceptor. This is very
> strange.
> >>> I'm just using Idea's debugger to see where the calls are going.
> >>>
> >>> So basically when all's well i.e. the subject role matches the
> annotation
> >>> role, then aop seems to be working. But if the roles are different then
> aop
> >>> doesn't seem to be working at all. No errors. Not even getting called.
> >>>
> >>> Any clue on what could be happening?
> >>>
> >>> Kind regards
> >>> Animesh
> >>>
> >>>
> >>> On Fri, Sep 19, 2008 at 8:14 PM, Jeremy Haile <[EMAIL PROTECTED]>
> wrote:
> >>>>
> >>>> Animesh,
> >>>> I only have light experience with Guice, but I know it supports AOP
> >>>> Alliance method interceptors, just like Spring uses - and just like
> >>>> JSecurity provides.
> >>>> I think you'd simply need to bind those method interceptors as
> >>>> appropriate. I haven't tried it yet, but I imagine something like the
> >>>> following code would work. Could you please try it out and let me
> know if
> >>>> it works?
> >>>> binder.bindInterceptor( any(), annotatedWith(RequiresRoles.class), new
> >>>> RoleAnnotationMethodInterceptor());
> >>>> binder.bindInterceptor( any(),
> >>>> annotatedWith(RequiresPermissions.class), new
> >>>> PermissionAnnotationMethodInterceptor());
> >>>> Jeremy
> >>>>
> >>>>
> >>>> On Sep 18, 2008, at 1:20 PM, Animesh Jain wrote:
> >>>>
> >>>> Well, can't really do the AOP part in Spring and the rest in Guice,
> its
> >>>> just making things unnecessarily intertwined. So I think I'll read up
> on
> >>>> what capabilities Guice has for AOP and try and write a Guice
> implementation
> >>>> for the RequiresRoles and RequiresPermissions tags. Any pointers will
> be
> >>>> appreciated on what I should try to do (on a higher level), because
> I've
> >>>> never tried my hand at AOP before this. Guice does have method
> interceptors
> >>>> I believe and that should be enough here, isn't it?
> >>>>
> >>>> Animesh
> >>>>
> >>>> On Thu, Sep 18, 2008 at 6:54 PM, Animesh Jain <[EMAIL PROTECTED]>
> >>>> wrote:
> >>>>>
> >>>>> Aah! This helps a lot. So I hope I can use this without using Spring
> >>>>> for the Jsecurity Realm injection - for that I'm using Guice.
> Anyway.. I'll
> >>>>> try this asap and update on the results. I think Jsecurity definitely
> needs
> >>>>> some more documentation in a few areas. I'll try and write down a few
> >>>>> tutorials when I find time.
> >>>>>
> >>>>> Animesh
> >>>>>
> >>>>> On Thu, Sep 18, 2008 at 6:45 PM, Jeremy Haile <[EMAIL PROTECTED]>
> >>>>> wrote:
> >>>>>>
> >>>>>> Animesh,
> >>>>>>
> >>>>>> Have you added these bean definitions to Spring?
> >>>>>>
> >>>>>> <bean id="lifecycleBeanPostProcessor"
> >>>>>> class="org.jsecurity.spring.LifecycleBeanPostProcessor"/>
> >>>>>> <bean
> >>>>>>
> >>>>>>
> class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
> >>>>>> depends-on="lifecycleBeanPostProcessor"/>
> >>>>>> <bean
> >>>>>>
> >>>>>>
>
> class="org.jsecurity.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
> >>>>>> <property name="securityManager" ref="securityManager"/>
> >>>>>> </bean>
> >>>>>>
> >>>>>> These are declared in webroot/WEB-INF/applicationContext.xml in the
> >>>>>> spring sample application along with some additional documentation.
> >>>>>>
> >>>>>> The first bean helps initialize and destroy JSecurity related beans.
> >>>>>> The DefaultAdvisorAutoProxyCreator is required to enable Spring's
> >>>>>> auto-proxying of beans based on annotations. The last bean adds
> >>>>>> support
> >>>>>> for auto-proxying method calls to beans that use JSecurity
> >>>>>> annotations.
> >>>>>>
> >>>>>> I hope this helps - let me know if you have more questions!
> >>>>>>
> >>>>>> Jeremy
> >>>>>>
> >>>>>> On Thu, 18 Sep 2008 18:30:40 +0530, "Animesh Jain"
> >>>>>> <[EMAIL PROTECTED]> said:
> >>>>>> > I guess I'm missing setting it up with some AOP framework is it?
> >>>>>> >
> >>>>>> > On Wed, Sep 17, 2008 at 11:25 PM, Animesh Jain
> >>>>>> > <[EMAIL PROTECTED]>
> >>>>>> > wrote:
> >>>>>> >
> >>>>>> > > Hi
> >>>>>> > >
> >>>>>> > > As I understood from the documentation, a checked exception will
> >>>>>> > > be thrown
> >>>>>> > > if for eg. a user does not have the role specified by
> >>>>>> > > @RequiresRoles. But
> >>>>>> > > nothing's happening, the method gets executed regardless. In my
> >>>>>> > > particular
> >>>>>> > > case I want the method to fire only when a user of a particular
> >>>>>> > > role is
> >>>>>> > > logged in, but that method is executing even if I try after
> >>>>>> > > logout. What am
> >>>>>> > > I missing :|
> >>>>>> > >
> >>>>>> > > Animesh
> >>>>>> > >
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >
>