我有一个Web服务,其服务器使用基本的http身份验证来授予访问权限
Web服务本身有自己的身份验证用户名和密码
在设置所需参数后,可以使用SOAP UI访问WS
我没有开发一个使用spring来访问Web服务的UI客户端
我的问题是如何在打开Web服务器页面时发送用户输入的HTTP身份验证,以便他可以访问Web服务
答案 0 :(得分:2)
当前的春季文档文档中有一个例子(第6.1章): http://docs.spring.io/spring-ws/site/reference/html/client.html#client-transports
我引用配置中有趣的部分:
<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<constructor-arg ref="messageFactory"/>
<property name="messageSender">
<bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender">
<property name="credentials">
<bean class="org.apache.http.auth.UsernamePasswordCredentials">
<constructor-arg value="john:secret"/>
</bean>
</property>
</bean>
</property>
<property name="defaultUri" value="http://example.com/WebService"/>
</bean>
我之前使用过的Spring WS的最新版本(1.x),但您可以使用Spring WS轻松访问Apache Commons HTTPClient API提供的任何内容。 使用WSTemplate系统时,覆盖点是WSMessageSender。但上面建议的方法允许直接从Spring配置中完成所有操作。
在您的方案中,您可以提供UsernamePasswordCredentials的实现,该实现具有回调以询问用户凭据,或者以其他方式注入。