扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
使用用户名/密码进行身份认证
对SOAP报文进行身份认证的方式很多,不过都是通过在SOAP报文头中添加一些安全凭证(Security Token)信息来完成的,主要包括以下一些身份凭证:
其中用户名/密码是最简单的身份认证方式,它不需要密钥、数字证书,所以也就不需要CA,部署实施简单易行。下面我们就通过例子讲解如何进行基于用户名/密码的SOAP认证。这个实例让客户端提供用户名/密码,服务端验证客户端的身份,而客户端按正常方式接收SOAP响应报文。
服务端创建一个applicationContext-ws-security.xml,让BbtForumService拥有用户名/密码的认证功能。
代码清单1 applicationContext-ws-security.xml:身份认证
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<bean id="baseWebService"class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
</bean>
<bean parent="baseWebService">
<property name="serviceBean" ref="bbtForum" />
<property name="serviceClass"
value="com.baobaotao.xfire.server.BbtForumService" />
<property name="name" value="BbtForumServiceUT"/>①Web Service名称
<property name="inHandlers">
<list>
<ref bean="domInHandler" />②负责将STAX流模型的SOAP转换为DOM模型
<ref bean="wss4jInHandler" />③对用户名/密码进行检查
</list>
</property>
</bean>
<bean id="domInHandler"class="org.codehaus.xfire.util.dom.DOMInHandler" />
<bean id="wss4jInHandler"class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
<property name="properties">
<props>
<prop key="action">UsernameToken</prop>④指定认证类型
<prop key="passwordCallbackClass">⑤指定一个密码回调实现类
com.baobaotao.xfire.wss4j.server.UtPasswordHandler
</prop>
</props>
</property>
</bean>
<bean id="bbtForum" class="com.baobaotao.service.BbtForum" />
</beans>
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者