[
https://issues.apache.org/jira/browse/WSCOMMONS-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12719096#action_12719096
]
Konrad K edited comment on WSCOMMONS-299 at 6/13/09 1:24 AM:
-------------------------------------------------------------
Indeed ... But let me explain my motivation first...
In my project, we need to generate policies based on parameters given at a
frontend. Therefore I tried out Metro's policy library but it has the following
disadvantages:
- PolicyAssertion subclasses aren't easy to reuse. For instance i need an
"Issuer" assertion with an wsa:EndpointReferenceType inside. But the class is
missing a convenient constructor or a setter to do so.
- Something which is also quite annoying are the two object models for
policies, namely a source and a normal one. Thus serializing includes lots of
transformation code.
- In the normal model most classes are immutable. Thus I had to package all my
assertions into collections before passing them to an operator. Afterwards I
had to package all my operators before creating a policy. As a result, I have
to generate my policy backwards.
- Its object model doesn't reflect the policy specification as good as Neethi
does.
Neethi adopts the composite pattern and generating a policy looks naturally in
the code. Also CXF's assertions seem to be cool initially, but they have some
mistakes (see http://issues.apache.org/jira/browse/CXF-2282). Another problem
is that they don't implement WS-SecurityPolicy to the letter. I wasn't able to
pass my whole EndpointReference to this setter:
setIssuerEpr(org.w3c.dom.Element issuerEpr), because I might have a wsa:Address
and but also a Metadata element, which need to be direct childs of the Issuer
Assertion. In the end I implemented most Assertions again.
Summarizing my experience i came to the following conclusions:
- The implementation of standardized assertions should be a part of Neethi and
the enforcement of them should be a part of CXF. That would enable people like
me to reuse assertions, as they are specified.
- It would also be nice to support WS-Policy 1.5 ... but currently we can't
switch the policy version consistently, because the serialize methods have
opaque nested policies.
was (Author: creme-fresh):
Indeed ... But let me explain my motivation first...
In my project, we need to generate policies based on parameters given at a
frontend. Therefore I tried out Metro's policy library but it has the following
disadvantages:
- PolicyAssertion subclasses aren't easy to reuse. For instance i need an
"Issuer" assertion with an wsa:EndpointReferenceType inside. But the class is
missing a convenient constructor or a setter to do so.
- Something which is also quite annoying are the two object models for
policies, namely a source and a normal one. Thus serializing includes lots of
transformation code.
- In the normal model most classes are immutable. Thus I had to package all my
assertions into collections before passing them to an operator. Afterwards I
had to package all my operators before creating a policy. As a result, I have
to generate my policy backwards.
- Its object model doesn't reflect the policy specification as good as Neethi
does.
Neethi adopts the composite pattern and generating a policy looks naturally in
the code. Also CXF's assertions seem to be cool initially, but they have some
mistakes (see http://issues.apache.org/jira/browse/CXF-2282). Another problem
is that they don't implement WS-SecurityPolicy to the letter. I wasn't able to
pass my whole EndpointReference to this setter:
setIssuerEpr(org.w3c.dom.Element issuerEpr), because I might have a wsa:Address
and but also a Metadata element, which need to be direct childs of the Issuer
Assertion. In the end I implemented most Assertions again.
Summarizing my experience i came to the following conclusions:
- CXF's Assertions have too much duplicate code ... also because of the
Assertion interface design
- The implementation of standardized assertions should be a part of Neethi and
the enforcement of them should be a part of CXF. That would enable people like
me to reuse assertions, as they are specified.
- It would also be nice to support WS-Policy 1.5 ... but currently we can't
switch the policy version consistently, because the serialize methods have
opaque nested policies.
> Policy intersection is not yet implemented
> ------------------------------------------
>
> Key: WSCOMMONS-299
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-299
> Project: WS-Commons
> Issue Type: Bug
> Components: Policy
> Reporter: Tammo van Lessen
> Attachments: patch.txt, patch2.txt
>
>
> Intersection is crucial for testing compatibility. It was already implemented
> it one of the earlier versions but got somehow lost...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.