Sergey Beryozkin wrote:
-----Original Message-----
From: Sergey Beryozkin [mailto:[EMAIL PROTECTED]
Sent: 24 September 2007 21:31
To: [email protected]
Subject: RE: WS-SX
I think we're over-blowing the problem a bit. Lets not get sidetracked into
hypothetical discussions on how dangerous it is to put a private stuff into
policies. Rather lets come up with a set of practical guidelines on when to
use policies and features.
Another thing I'd like to avoid is to have some religious debate leading
nowhere.
I really don't believe this is hypothetical or religious at all.
Dan, you said you wanted to support WS-SecurityPolicy because it was so
important for the enterprise. Now you're also saying that using features is
so much better from an API perspective.
I personally don't understand what is your position. I'm just confused. Can
you please clarify?
Imagine I'm writing a GUI for CXF which configures the security for my
services. As a CXF integrator, I don't want to have to generate policies
to be able to configure a service. Features are much nicer to use. "new
Feature().setFoo(bar);"
Do you want support WS-SecurityPolicy by using WS-Security feature ? I don't
think it makes any sense but I'd you to explain please.
I would like to be able to configure CXF specific configuration items
(like key info) via a feature. Policies can then be attached.
I see policies and configuration of the other bits as two seperate
processes. For instance, you may have a policy which you apply to all
your services. But the key information may differ on each one.
Can you explain please what you mean by saying it's so much harder to set up
a service using a policy ?
See above.
I'd also like to suggest you to think of the following :
* how can one satisfy a user's desire to attach capabilities to endpoints,
operations, and bindings using features
Yeah, thats what Policy is for. Are you suggesting that users are going
to have different key information for different operations? I can
certainly see bindings/endpoints - and you can apply features at that level.
* how can a client to avoid doing duplications like enabling MTOM on the
client side when using features
I don't understand this question - if the client encounters an MTOM
policy expression, it can just enable it. No feature needed.
* how can a client perform intersection of capabilities using features
Eh? I'm not suggesting we rip out policy all together.
Speaking of the client: are you suggesting the client has to take a
policy from a service, add in a bunch of extra expressions for key info
and the like, and then deploy? Thats a hell of a lot of work. Thats what
features are for: to supply configuration which is orthogonal to Policy.
Or yes, one more thing.
How can one express 'or' combination using features, that is how one can do
multiple alternatives, something one can easily do with policies :
<Policy>
<All>
</All>
<All>
</All>
</Policy>
Alternatives are targeted at a consumer. Multiple consumers can choose their
own alternatives and a provider will ensure it supports all the consumers.
Consumers may also have their policies on which case they'll do the
intersection.
This clearly shows that WS-Policy is not about configuration only. Looking
at a WS-Policy language as the configuration option only is not correct.
I don't want push the message that using policies is the only true way to
go. I'd just like us to agree on a policy (:-)) when polices should be
applied.
Who's looking at WS-Pol as a configuration option only here? I didn't
think anyone was.
So to summarize: we should use features for information which is not
useful for the client and for stuff which should not be public beyond
the local service. Because:
1. It makes API configuration of the service easier. No need to generate
policy documents by hand.
2. Security considerations - Policy files are not easily tracked and
will leak IMO
3. Configuration readability - WS-SecPol files are quite verbose/sticky.
As Fred said: "Im less inclined to use WS-SecurityPolicy as a
configuration mechanism, at least exclusively so. It's not really
designed to be human-readable, despite the fact that it's written in
XML, and XML is supposed to be human-readable, etc etc."
4. Separation of concerns: Policy and configuration are two separate
processes, often done at different stages. They also have different
levels of reusability.
I'm not saying we couldn't also support policy expressions for
configuration, but I think the use case for it is limited. Again, as
Fred said: "I agree that in some small percentage of cases, we need to
support configuration of WS-SecurityPolicy directly, and at a low level,
but these cases fall below the 20% bar, and can certainly be exposed
through low-level config."
Of the above items, I will admit that 3/4 are potentially overcomeable
but I would rank #1 & #2 as very important issues which kill the idea of
configuring everything in Policy for me. We could also potentially use a
feature to generate policy, but that would be a PITA IMO. It'd probably
just be easier to interact with the WS-SX engine directly.
- Dan
--
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog