Hey guys ,
I am trying to apply security to my client web services. but for some reason it seems that the header is always staying empty. Here's what i get when i execute
Here's my application context xml configuration file.Code:09/30 15:53:53.272 [http-8080-1] TRACE o.s.ws.server.MessageTracing.sent:175 - Sent response [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring xml:lang="en">com.sun.xml.wss.XWSSecurityException: Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header found; nested exception is com.sun.xml.wss.XWSSecurityException: com.sun.xml.wss.XWSSecurityException: Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header found</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>] for request [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body>...</SOAP-ENV:Body>
this is my client-securityPolicy.xmlCode:<bean id="soapStudySubject" class="x.ws.client.SoapStudySubject"> <property name="webServiceTemplate" ref="webServiceTemplate"/> </bean> <bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/> <bean id="xwss" class="org.springframework.ws.soap.security.xwss.XwsSecurityInterceptor"> <property name="policyConfiguration" value="classpath:client-securityPolicy.xml" /> <property name="callbackHandler"> <bean class="org.springframework.ws.soap.security.xwss.callback.MockValidationCallbackHandler" /> </property> </bean> <bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> <constructor-arg ref="messageFactory"/> <property name="defaultUri" value="http://localhost:8080/x/ws/studySubject/v1"/> <property name="interceptors"> <list><ref bean="xwss"/></list> </property> </bean>
Here's my java client codeCode:<xwss:SecurityConfiguration dumpMessages="true" xmlns:xwss="http://java.sun.com/xml/ns/xwss/config"> <xwss:UsernameToken name="cafe" password="babe" useNonce="false" digestPassword="false"/> </xwss:SecurityConfiguration>
Anything I am doing wrong here ?Code:public class SoapStudySubject extends WebServiceGatewaySupport { private static final String NAMESPACE_URI = "http://x/ws/studySubject/v1"; public String createSubject(SubjectBean subjectBean, StudyBean studyBean, StudySubjectBean studySubject) { Element requestElement = prepareRequest(subjectBean, studyBean, studySubject); DOMSource source = new DOMSource(requestElement); DOMResult result = new DOMResult(); getWebServiceTemplate().sendSourceAndReceiveToResult(source, result); return processResponse(result.getNode()); } ... }


Reply With Quote