The one thing I've noticed in other frameworks is that they treat
security outside of a domain context. Static security models at
service level and/or domain object levels are good but I think it
paints only a part of the picture. For example, imagine a case where
the user is allowed to issue a command/invoke a service; but the
constraints are that he/she can do this from 9 AM to 5 PM. This
doesn't even take into consideration what state the domain object in
question is in (e.g. 'Active' status).  In my mind the domain context
in which the request is made is very important and that having a
role(or permissions) is just a starting point. I've seen a lot of IF
statements where the permission is checked AND then a dozen more
conditions that are domain specific is checked. In my mind they're all
together and is a part of the security model.

Ok, next. Let's say that the user got the authorization to issue the
command successfully; the domain object (or objects) returned should
also have authorization metadata associated with its properties so
that the GUI (or another client) is able to figure out what can be
changed and what can't be. I actually think qi4j might already be
handling this with the Property interface (@Immutable also).

I've read too many RBAC related articles so maybe I'm wishing for too
much :) The only thing that comes to mind to me is to use some kind of
rules engine in addition to the usual roles+capabilities mappings.


On Tue, May 12, 2009 at 1:45 PM, Raoul Duke <[email protected]> wrote:
>> I have just realized that we probably need to become more security
>> concerned than we have been so far.
>>
>> Anyone has any thoughts on this topic?
>
> I don't understand your situation entirely, apologies if I'm way off
> base, and I suspect you want to go with standard Java approaches to
> managing security. But... I'll throw out $0.02 that most security is
> based on access control lists, and those are 9 times out of 10
> fundamentally flawed. A different and often mostly better approach
> that might be worth thinking about is to use 'object capabilities' for
> authorization.
>
> sincerely.
>
> _______________________________________________
> qi4j-dev mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
>

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to