webservice安全验证 java_基于Xfire SOAP Header的WebService安全验证教程 .

WebSerice是一种开放的web服务,任何人都可以访问,但我们有时候需要考虑只有付费用户才能使用WS,所以,我们就需要对WS加入安全验证机制,当然,可以利用防火墙的IP过滤,web应用的配置从最外层去隔离非法用户,但在内层,我们也可以使用SOAP Header的方式,由客户端发送验证数据,服务端验通过后基WS访问权限

首先根据我的这篇Blog

配置WS Server和WS Client,其中Client端的测试代码类名由Client改为ClientTest,因为我们要用到Xfire的一个名为Client的类

首先我们编写服务端验证类继承AbstractHandler

None.gifpackagetest;

None.gif

None.gifimportorg.codehaus.xfire.MessageContext;

None.gifimportorg.codehaus.xfire.handler.AbstractHandler;

None.gifimportorg.jdom.Element;

None.gif

ExpandedBlockStart.gif

ContractedBlock.gifpublicclassAuthenticationHandlerextendsAbstractHandler...{

6a9c071a08f1dae2d3e1c512000eef41.png

ExpandedSubBlockStart.gif

ContractedSubBlock.gifpublicvoidinvoke(MessageContext cfx)throwsException...{

6a9c071a08f1dae2d3e1c512000eef41.pngif(cfx.getInMessage().getHeader()==null)

ExpandedSubBlockStart.gif

ContractedSubBlock.gif...{

6a9c071a08f1dae2d3e1c512000eef41.pngthrowneworg.codehaus.xfire.fault.XFireFault("请求必须包含验证信息",org.codehaus.xfire.fault.XFireFault.SENDER);

ExpandedSubBlockEnd.gif           }6a9c071a08f1dae2d3e1c512000eef41.png           Element token=cfx.getInMessage().getHeader().getChild("AuthenticationToken");

6a9c071a08f1dae2d3e1c512000eef41.pngif(token==null) 

ExpandedSubBlockStart.gif

ContractedSubBlock.gif...{ 

6a9c071a08f1dae2d3e1c512000eef41.pngthrowneworg.codehaus.xfire.fault.XFireFault("请求必须包含身份验证信息", org.codehaus.xfire.fault.XFireFault.SENDER); 

ExpandedSubBlockEnd.gif           }6a9c071a08f1dae2d3e1c512000eef41.png

6a9c071a08f1dae2d3e1c512000eef41.png              String username=token.getChild("Username").getValue(); 

6a9c071a08f1dae2d3e1c512000eef41.png              String password=token.getChild("Password").getValue(); 

6a9c071a08f1dae2d3e1c512000eef41.pngtryExpandedSubBlockStart.gif

ContractedSubBlock.gif...{ 

6a9c071a08f1dae2d3e1c512000eef41.png//进行身份验证 ,只有abcd@1234的用户为授权用户6a9c071a08f1dae2d3e1c512000eef41.pngif(username.equals("abcd")&&password

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值