lol - that's what I was asking you. I have the document ready, where should I put it where everyone can find it? Do we want to create a Wiki page or Jira issue? I'm sure we will need some place to collaborate.

-Adrian


David E Jones wrote:

Okay, I give up trying to find it or a link to in my email history... where is your document Adrian?

-David


On May 13, 2009, at 12:58 PM, Adrian Crum wrote:

I have the design document ready, I just don't know what to do with it.

-Adrian

David E Jones wrote:
I think the sentiment in the thread is that more feedback would be really helpful. It's kind of the lack of discussion that seems to be holding this back. At this point I don't see any comments that argue against item #4, so unless someone hops in with comments, issues, or additional requirements then we'll just go with that. The next step, aside from the work that Adrian is doing, is to get the data model going for this external configuration of authorization that fits for this pattern and the requirements in the other thread.
-David
On May 13, 2009, at 8:57 AM, Tim Ruppert wrote:
+1 - that's what I was saying - let's get back on this horse and make these improvements! We all know it's sorely needed - don't let discussion stop us from making an impact.

Cheers,
Tim
--
Tim Ruppert
HotWax Media
http://www.hotwaxmedia.com

o:801.649.6594
f:801.649.6595

----- "Adrian Crum" <adri...@hlmksw.com> wrote:

I'm sure it is no surprise that I like the #4 design the best - I
think
it matches the design I proposed.

What IS surprising is the lack of response. We had a lively discussion

on the subject of security design a week ago, and now there doesn't
seem
to be much interest in it.

-Adrian


David E Jones wrote:

I haven't seen any additions to this original list in the attempt to

brainstorm, so I guess we're ready to start discussing the merits of

each of these approaches.

Please comment!

To get this started I'll express my opinions on the topic. In short,
#4
is cool and 1-3 are crap. Is that biased enough for you? Well,
here's
why I say that. Right now in order to configure permissions and
introduce more granular permissions as needed you have to edit some
sort
of XML files (or in some case Java files or other things) possibly
including screen defs, service defs, and service implementations.
The
most important part of point #4 is that authorization settings will
be
totally external to these artifacts. In other words, the
authorization
settings will refer to the various artifacts instead of the
artifacts
pointing to the authorization settings.

IMO that's the most important point: if security can't be configured
by
an end-user and through run-time evaluated data (preferably in the
database so multiple app servers stay consistent, etc), then what's
the
point? The security config in OFBiz would still be a large,
expensive,
PITA.

That said, other biased comments are now needed to balance the bias
I
just threw into this... ;)

-David


On May 4, 2009, at 11:53 AM, David E Jones wrote:


This thread is specifically for discussing possible configuration
patterns to use in OFBiz going forward. Please keep other
discussion
in another thread, including the merits of each possibility...
let's
just brainstorm in this thread.

To get things started, here are the patterns that have been
discussed
recently (in high level terms, we can get into implementation and
specific practices later on), these are in no particular order:

1. artifacts responsible for their own security (especially
services
and screens), and security permissions are referred to directly (ie

the actual permissions are configured directly in the XML tags for
the
artifact)

2. artifacts responsible for their own security, and no direct
references are used and instead an indirect security control is
referred to; this is basically the permission service model we've
been
using where a permission service is basically a security policy
that
refers to permissions, can query/filter/whatever to do record level

security, and in customization the permission service can be
overridden or its function changed by ECA rules without touching
any
OOTB code or configuration

3. a hybrid of #1 and #2 where artifacts refer directly to
permissions
and there is external configuration based on those permissions that

can add other qualifying permissions and/or invoke logic to change
how
that permission is evaluated (ie override the default behavior of
requiring the user to have that permission and either add
additional
constraints or allow alternative constraints even if the user does
not
have the original permission that triggered it all); this is
recursive
so that if an alternative permission is configured that permission
may
also have further alternative permissions; also being recursive if

attached logic evaluates other permissions that may have
alternative
permissions and/or permission logic attached to them; as I
understand
what Andrew has implemented, this is the pattern he followed

4. artifacts are not responsible for their own security except to
specify whether any sort of permission is required or not (ie a
require-permission attribute, would be true by default; for example

most ecommerce screens would have this set to false); access
control
would be configured externally so that you can configure access at
the
most granular level possible (we would go ALL the way here,
including:
screens, services, forms, form fields, menu items, tree nodes, etc,

etc); the access control tools would have patterns and features to

facilitate grouping of artifacts, grouping of users (ie just use
the
current SecurityGroup entity), and support for both functionality
access and record-level access

Can anyone thing of other patterns? Again, PLEASE do not comment on

which one you like better or what you think the advantages or
disadvantages are of each in this thread (of course, definitely
think
about such things and feel free to comment in other threads, I just

want this to be a "hat's off" (yes, that is a reference to Six
Thinking Hats by Edward de Bono; anyone who hasn't read that should

give it a go!) brainstorming session.

Thank You!
-David





Reply via email to