Spring Web Services com Soap e Security Interceptors

Estou com um problema com a validação de USER/PASS em msg soap no spring-ws :S

securityPolicy.xml

<xwss:SecurityConfiguration xmlns:xwss=“http://java.sun.com/xml/ns/xwss/config”>
<xwss:RequireUsernameToken
passwordDigestRequired=“false” nonceRequired=“false” />
</xwss:SecurityConfiguration>

Interceptor e Bean







<bean id="passwordValidationHandler"
	class="org.springframework.ws.soap.security.xwss.callback.SimplePasswordValidationCallbackHandler">
	<property name="users">
		<props>
			<prop key="Bert">Ernie</prop>
		</props>
	</property>
</bean>

mapeamento

<sws:interceptors>
	<sws:payloadRoot namespaceUri="http://www.marketdata.com/loyaltystore/schemas"
		localPart="ListCategoriesRequest">
		<ref bean="wsSecurityInterceptor" />
	</sws:payloadRoot>
</sws:interceptors>

Agora …

se eu mandar um soap request

<S11:Envelope xmlns:S11=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:wsse=“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-
1.0.xsd” xmlns:sch=“http://www.marketdata.com/loyaltystore/schemas”>

S11:Header
wsse:Security
wsse:UsernameToken
wsse:UsernameBert</wsse:Username>
<wsse:Password Type=“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText”>Ernie</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</S11:Header>

<S11:Body> 
	  <sch:ListCategoriesRequest/>
</S11:Body> 

</S11:Envelope>

Estou recebendo

<SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”>
SOAP-ENV:Header/
SOAP-ENV:Body
SOAP-ENV:Fault
SOAP-ENV:Client
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
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Alguém tem alguma idéia ? :slight_smile:

nossa …depois de quebrar a cabeça com essa !!!@#@
era realmente a mensagem de entrada:

eis a mensagem que funcionou certo:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://www.guj.com.br/ls/schemas" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <soapenv:Header> <wsse:Security> <wsse:UsernameToken> <wsse:Username>USER</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASS</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <sch:ListCategoriesRequest/> </soapenv:Body> </soapenv:Envelope>

rafaelcavazin, estou precisando implementar WS-Security no client para fazer comunicação com um web service, você teria um exemplo do código que gerou esse SOAP que você postou ?

Olá , amigo.

Putz faz tempo que mexi com isso mas eu lembro que essa mensagem problemática que eu estava testando
ela gerada pelo próprio SOAP UI (ferramenta de testes em WEB Services ) . Agora uma bibliografia que me
ajudou bastante foi o Spring in Action.

Desculpe não poder ajuda-lo mais , mas realmente não lembro :slight_smile: