WSDLに表示されるSpring WS-Security
-
20-08-2019 - |
質問
http://static.springframework.org/spring-ws/sites/1.5/reference/html/security.html のように:
<bean id="callbackHandler" class="org.springframework.ws.soap.security.wss4j.callback.SimplePasswordValidationCallbackHandler">
<property name="users">
<props>
<prop key="bart">arnie</prop>
</props>
</property>
</bean>
<bean id="annotationMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping">
<property name="interceptors">
<list>
<bean class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="UsernameToken" />
<property name="securementActions" value="NoSecurity" />
<property name="validationCallbackHandler" ref="callbackHandler" />
</bean> ...
ただし、クライアント(SoapUIなど)は、WSDLに記載されていないため、セキュリティを使用する必要があることを知りません。どうすればそれを手に入れることができますか?これは私がそれを生成する方法です:
<bean id="qwertyService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
<property name="schemaCollection" ref="schemaCollection" />
<property name="portTypeName" value="QwertyService" />
<property name="locationUri" value="/QwertyService/" />
<property name="targetNamespace" value="http://www.ead2.nl/demo/wsdl" />
</bean>
解決
WS-Security自体はWSDLに配置されません。 WS-PolicyはWS-Securityに基づいて構築されており、これらのより洗練された標準を使用してWSDLに追加することが可能かもしれませんが、それはあなたが望むもののようには聞こえません。
SOAPUIでは、セキュリティ情報はプロジェクトの設定として構築されます。プロジェクトをダブルクリックすると、セキュリティタブがあります。 PKIベースのスキームを使用している場合は、キーストアを追加でき、発信および着信の構成を定義できます。保護するメッセージの内容に応じて、各メッセージに構成のペアを適用できます。
他のヒント
wsdlでws-security情報を伝えることは完全に可能です!!!!!
ws-policy、具体的にはws-securitypolicyをご覧ください(2つが一緒になります)
ただし、実装を具体的に支援することはできません。
これが役立つことを願って
所属していません StackOverflow