Just be sure you are using 2.7.0 for this as there were a few bugs in java
first ws policy support fixed in 2.7.0.

Sent from my Galaxy S2
On Oct 18, 2012 6:12 PM, "Jason Pell" <[email protected]> wrote:

> I am not sure about policies that are outside of the classpath.  I
> have only tried loading policies via the classpath.
>
> The uri is resolved to something similiar to a spring Resource.  So
> you might be able to reference it using a "file:" uri but not sure.
>
> In order to load this via spring what you would do is import your
> SignEncrypt.xml file into spring.    See attached I modified your
> policy file so it can be imported by spring.  So you can reference it
> as a normal spring import statement:
>
> <import resouce="SignEncrypt.xml" />
>
> Not sure whether you will need to use classpath, or a file reference
> or what, but spring will tell you if it cannot import it.
>
> Then what you can do in your interface instead of referencing the xml
> file, is use the spring reference like so:
>
> @Policies({ @Policy(uri ="#SignAndEncryptPolicy") })
>
> Cheers
> Jason
>
>
> On Thu, Oct 18, 2012 at 5:56 PM, Flavio Campana
> <[email protected]> wrote:
> > Thanks for all the answers.
> > What i'm trying to do is to create a secure web service with
> UsernameToken,
> > Signing and Encription.
> > if i understood correctly all the info, i need to:
> >
> > provide a CallbackHandler which sets the keystore password for DECRYPT
> and
> > SIGNATURE action, and check the hashed password for USERNMANE_TOKEN.
> > Create a policy file (attached)
> > Annotate the WS interface with @Policies({ @Policy(uri =
> > "policy:SignEncrypt.xml") }) (it's placed under WEB-INF/policies, should
> i
> > use a different uri? How can i load this with spring?)
> >
> >
> > Il 18/10/2012 03:02, [email protected] ha scritto:
> >
> > Out of the couple I highlighted I eventually decided to go with using
> > externalAttachment and wrote my own DomainExpressionBuilder and
> > DomainExpression.
> >
> > What I wanted to be able to do was apply a single security policy to
> > all jaxws:endpoints at the operation level for all except the "ping"
> > operation which I wanted
> > to have free to access.
> >
> > This was extremely simple to achieve.
> >
> > In my spring xml I registered:
> >
> >       <p:externalAttachment
> > location="classpath:/wspolicy/UsernamePasswordTimestampPolicy.xml"/>
> >
> >       <!--  register a policy attachment appliesto checker! -->
> >       <bean id="com.pellcorp.spring.security.DomainExpressionBuilder"
> > class="com.pellcorp.spring.security.DomainExpressionBuilder" />
> >
> > My UsernamePasswordTimestampPolicy.xml has an namespace of
> > xmlns:myns="http://pellcorp.com/security/policy"; and an AppliesTo:
> >
> > <wsp:AppliesTo>
> >               <myns:OperationMatch />
> > </wsp:AppliesTo>
> >
> > Then my expression builder has this element as the supported type:
> >
> > new QName("http://pellcorp.com/security/policy";, "OperationMatch")
> >
> > I then implemented the public boolean appliesTo(BindingMessageInfo
> > messageInfo) {
> >
> > if (Type.INPUT.equals(messageInfo.getMessageInfo().getType())) {
> >                       String operationName =
> > messageInfo.getBindingOperation().getName().getLocalPart();
> >                       return !"ping".equalsIgnoreCase(operationName);
> >               }
> >
> > It works wonderfully on the server and with 2.7.1 snapshot the
> > relevent policy reference and policy are included in the wsdl.
> >
> > Cheers
> > Jason
> >
> > On Thu, Oct 18, 2012 at 11:45 AM,  <[email protected]> wrote:
> >
> > Actually java first in cxf supports ws-policy very nicely. I have been
> > contributing some additional work in this area and I don't think you
> need to
> > go to the trouble of having to manually manipulate a wsdl post gen.
> >
> > With 2.7.1 snapshot I have added additional work to ensure that even if
> you
> > want to use external ws policy attachments you can have them applied at
> the
> > binding operation level.
> >
> > Or you can annotate the web service interface with either a classpath
> > reference to a policy file or you can use a #id to refer to q policy
> > embedded in spring context. You can use spring imports to import a policy
> > file but it will need to be embedded in a spring bean xml tag.
> >
> > I have been very happy with all these approaches and performed a lot of
> > testing and it works very well in 2.7 onwards. 2.7.1 just has one
> > enhancement to include policies ij wsdl that have been applied at the op
> > message level.
> >
> > Happy to provide additional info about all this
> >
> > Sent from my Galaxy S2
> >
> > On Oct 18, 2012 8:38 AM, "Glen Mazza" <[email protected]> wrote:
> >
> > I'd recommend building a Java-first web service in order to auto-generate
> > a WSDL[1, link 3][2], then with WSDL in hand switch to a WSDL-first
> > implementation where you can do whatever security options you want [1,
> links
> > 11-21, also the CXF WS-* samples].
> >
> > Glen
> >
> > [1] http://www.jroller.com/gmazza/entry/blog_article_index (link 3)
> > [2]
> >
> http://cxf.apache.org/docs/defining-contract-first-webservices-with-wsdl-generation-from-java.html
> >
> > On 10/17/2012 03:04 AM, Flavio Campana wrote:
> >
> > Hi everyone,
> > i was looking for some example of implementing a web service with CXF
> > wich used WS-Security and WS-SecurityPolicy using a code first approach.
> > Do you know if there are any?
> >
> > Thanks.
> >
> >
> > --
> > Glen Mazza
> > Talend Community Coders - coders.talend.com
> > blog: www.jroller.com/gmazza
> >
> >
>

Reply via email to