Sim IJskes - QCG wrote:
On 10/08/2010 01:09 PM, Michal Kleczek wrote:
On Friday 08 of October 2010 13:02:17 Sim IJskes - QCG wrote:
On 10/07/2010 09:57 PM, Michal Kleczek wrote:
So...
I've spent a day on some thinking and prototyping and hopefully I got an
idea. Here is an outline:

1. We annotate classes with an object implementing Module interface:
Is it safe to say that you are basically enhancing the codebase
annotation pattern?
Basically - yes.
Although I am not sure I understand precisely your question... :)

You understood correctly. :-) (i should have said, construct, well ok).

I noticed the readAnnotation of MarshallInputStream reads an Object and then casts it to a String. Are we sure that this is not a possible vector for a deserialization attack? Personally i would have taken a UTF-8 String (with limited length), but if you only unmarshall Objects from TLS connections, that you check first, i guess its ok.

So your solution is allowing for different credentials between the TLS and the code source, and checking these credentials.

Is this package pluggable onto river without modifications in river?

Are you sure that's a good idea?  Not modifying River I mean?

Michal's given this issue some thought.

It appears to solve the following problems:

  1. CodeSource identity is no longer based on it's originating URL
     location.
  2. Two services using the same proxy CodeSource don't share the same
     ClassLoader, one service can't gain the privileges of the other.

I'd had some thoughts about using Subject's in ClassLoader's with Identical CodeSource for distinct identity, however the Subject isn't known until after the classes are loaded.

I think we need to set up an issue on Jira and in skunk where we can collaborate and explore further development.

Something I'd like to further explore is a ClassLoader inheritance structure that places Service API and Jini Platform classes in a Parent ClassLoader and all application, service and proxy classes in child ClassLoaders, so they're forced to cooperate using the Service API, Jini and Java Platform classes. This also ensures implementation classes aren't visible to proxy code, for good security.

Cheers,

Peter.

Reply via email to