Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] AspectJ and JAAS problem

Well, the code is based on the admin-application in the Java Pet Store.  I
have created
com.sun.j2ee.blueprints.admin.common.higjaas.AbstractPetStoreJAASAspect.java
under src/admin/ and
com.sun.j2ee.blueprints.admin.client.PetStoreJAASClientAspect.java under
src/client/.  (And a similar aspect for the server under admin.web)  The
aspect-code is based on the JAAS-chapter in your book, so I guess you're
familiar with it. :)

The pointcut consists of several elements, but one of those that give a me
problem is
execution( * PetStoreAdminClient.createToolBar(..) ).

I use the ant-script that comes with the Pet Store, but have changed javac
to iajc.  It looks like this now:
<iajc srcdir="${admin.src}"
	destdir="${admin.classbindir}"
	classpath="${admin.classpath}:c:\aspectj1.1\lib\aspectjrt.jar"
	includes="admin/com/**"/>
<iajc srcdir="${client.src}"
	destdir="${client.classbindir}"
	classpath="${admin.classpath}:c:\aspectj1.1\lib\aspectjrt.jar"
	includes="**"/>
I don't know if it can cause a problem that I compile separatly?  The
abstract aspect lies in admin.src.

I start the application from DOS (I skipped the webstart-thing..) with this:
java -cp
../build/classes;../build/client;c:\aspectj1.1\lib\aspectjrt.jar -Djava.secu
rity.manager -Djava.security.policy=policy -Djava.security.auth.policy=polic
y.jaas -Djava.security.auth.login.config=login.conf
com.sun.j2ee.blueprints.admin.client.PetStoreAdminClient
com.sun.j2ee.blueprints.admin.clientHttpPostPetStoreProxy localhost 8000
1000
(don't mind the stuff after "PetStoreADminClient", it's only parameters
needed by that class..)

The error comes in the DataSource-class:
NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source)
at
com.sun.j2ee.blueprints.admin.client.DataSource$RefreshAction.<init>(DataSou
rce.java:196)
(Let me know if it helps if I give you the entire stacktrace.)

Was this helpful, or should I write more?

If I write out getClass().toString() I get: class
com.sun.j2ee.blueprints.admin.client.DataSource$RefreshAction, so that looks
quite normal I guess?  I have tried to print out the classloader too, and it
was sun.misc.Launcher$AppClassLoader both with and without the pointcut
defined.

I guess you are right that it is some kind of permission issue.  I read
briefly about file-permissions, and it looks like it is only possible to
read from the same directory as the code lies in without explicit
permission.  I will try to add a file-permission that enables the code to
read from other directories too.  But why does it happen?  And why don't I
get an AccessControllerException?  (Is it supposed to return null when
you're not authorized to read a file?)


Regards, Hagen

Hagen Hasle
haagen@xxxxxxxxxxxx

-----Original Message-----
From: aspectj-users-admin@xxxxxxxxxxx
[mailto:aspectj-users-admin@xxxxxxxxxxx]On Behalf Of Ramnivas Laddad
Sent: 29. april 2004 17:24
To: aspectj-users@xxxxxxxxxxx
Subject: Re: [aspectj-users] AspectJ and JAAS problem


This does look like permission configuration issue.
Can you try to print value returned by getClass() in
both cases? Perhaps that will give a hint.

Can you show minimal code that reproduces the problem?

-Ramnivas

--- Hegen_Hasle <haagen@xxxxxxxxxxxx> wrote:
>
> I have a problem with AspectJ I don't quite understand...
>
> I have my AOP-code in two different packages.
> One abstract aspect one place, and a concrete aspect together with
> the code
> I want to weave it into.
>
> In the abstract aspect I have defined an around advice that handles
> authorization with a doAsPrivileged-block.  In the concrete aspect I
> have
> the pointcut.
>
> The problem I have is that code in the cflow of the
> doAsPrivileged-block
> start to misbehave.  There are several
> getClass().getResource("/path/to/picture.jpg") that suddenly returns
> null
> instead of the picture.  If I move the around advice to the concrete
> aspect,
> everything works.
>
> I don't quite know if this is some kind of classloader error, or if I
> need
> to change the JAAS permissions (include some kind of filePermission
> perhaps?)  The error-message I get is a nullpointer exception when
> the
> picture is used in a constructor, and not an
> AccessControllerException as I
> might have expected.
>
> If I move the folder with the pictures inside the folder-structure
> where my
> abstract aspect lies, the error goes away.  But it pops up somewhere
> else
> instead, in code that is identical (getClass().getResource("...")
> except it
> hasn't been weaved with the around-advice, so it's not inside a
> doAsPrivileged-block.  This suggests to me that it has something to
> do with
> the classloader. (?)
> But if I don't move the pictures, but instead include a
> java.security.AllPermission in the JAAS policy-file, everything works
> perfectly.  This suggests I need to find the right permission, but if
> that's
> the case - why doesn't I get an AccessControllerException in the
> first
> place?
>
> I hope I have explained enough here.  Any suggestions to what I'm
> doing
> wrong is greatly appreciated.
>
> Apologies if my english is below par..
>
> Regards,
>
> Hegen
> haagen@xxxxxxxxxxxx
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-users





__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs
http://hotjobs.sweepstakes.yahoo.com/careermakeover
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/aspectj-users




Back to the top