Web Service Soap认证

XFire Web Service验证方案 XFire的文档做的真是相当的烂,非常不详细,看得匪夷所思,而且和发行的代码版本相当的不匹配,里面的示例根本无法运行,看得真是……相当窝火公司项目XFire的服务框架我已经做好,这两天就要加入验证功能,而且要和整体权限框架(还没做)相结合开始想通过HttpSession验证,这样可以很方便的和b/s的权限系统相统一,但实在不知道如何在客户端通过Spring或XFire访问HttpSes 阅读详情

SOAP中的验证

VisualSW

          Web Service提供开放式的服务,但是在我们的开发中,需要涉及到访问Web Service权限的问题,这就需要解决控制Web Service的访问权限。

 

通过SOAP Header,我们可以简单的实现权限控制:

首先创建一个简单的Web Service(SoapCheck):

SoapCheck.cs(注意红色部分注释)

using System;

using System.IO;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Diagnostics;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

 

namespace TESTSOAP.WebService

{                 

          [WebService (Namespace="TESTSOAP.WebService",

                    Description="TESTSOAP Web Services",

                    Name="TESTSOAP GEID")]  

          public class SoapCheck : System.Web.Services.WebService

          {

                    //实例化Account对象

                    public Account oAccount=new Account();          

 

                    public SoapCheck()

                    {                          

                             InitializeComponent();

                             strConnection=GetConString();

                  }

 

                    #region Component Designer generated code

                  

                    //Required by the Web Services Designer

                    private IContainer components = null;

                                     

                    /// <summary>

                    /// Required method for Designer support - do not modify

                    /// the contents of this method with the code editor.

                    /// </summary>

                    private void InitializeComponent()

                    {

                  }

 

                    /// <summary>

                    /// Clean up any resources being used.

                    /// </summary>

                    protected override void Dispose( bool disposing )

                    {

                             if(disposing && components != null)

                             {

                                       components.Dispose();

                             }

                             base.Dispose(disposing);              

                  }

                  

                    #endregion   

 

                    //需要Soap Header验证的方法前面添加如下

                    [SoapHeader("oAccount")]

                    [WebMethod (Description="TESTSOAP GetReturn")]

                    public string GetReturn()                      

                    {

                             if(oAccount.CheckAccount())

                             {

                                       return "Login Successed!";

                             }

                             else

                             {

                                       return "Login Fail!";

                             }                 

                  }                  

          }

}

 

Account类:

继承自SoapHeader,以使用SoapHeader。

Account.cs

using System;

using System.Web.Services.Protocols;

 

namespace TESTSOAP.WebService

{       

          public class Account:SoapHeader

          {

                    public string User;

                    public string PassWord;

 

                    public Boolean CheckAccount()

                    {

                             if(User=="Admin" && PassWord=="Admin")

                             {

                                       return true;

                             }

                             else

                             {

                                       return false;

                             }

                  }                  

          }

}

Soap Xml格式:

 

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <Account xmlns=" TESTWebService ">

      <User>string</User>

      <PassWord>string</PassWord>

    </Account>

  </soap:Header>

  <soap:Body>

    <GetGlobalEmpID xmlns=" TESTWebService ">

    </GetGlobalEmpID>

  </soap:Body>

用用户名和密码替换xml中的红色部分。

 

客户端调用的VB例子:

Public Function TESTSoap(byval strUser as string,byval strPassWord as string) As String

    Dim objHttp As MSXML2.XMLHTTP

    Dim strSoap As String

    Dim strUrl As String

    Dim xmlDoc As MSXML2.DOMDocument

   

    On Error GoTo ErrHandle

    Set objHttp = CreateObject("MSXML2.XMLHTTP")

    Set xmlDoc = CreateObject("MSXML2.DOMDocument")

   

    strUrl = "http://localhost/SoapCheck.asmx"

   

    strUser = Trim$(strUser)

   

    strPassWord = Trim$(strPassWord)

 

    '生成Soap XML

    strSoap = "<?xml version=""1.0"" encoding=""utf-8""?>"

    strSoap = strSoap & vbCrLf & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "

    strSoap = strSoap & vbCrLf & "xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" "

    strSoap = strSoap & vbCrLf & "xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"

    strSoap = strSoap & vbCrLf & "<soap:Header>"

    strSoap = strSoap & vbCrLf & "<Account xmlns=TESTSOAP.WebService>"

    strSoap = strSoap & vbCrLf & "<strUser>" & strUser & "</strUser>"

    strSoap = strSoap & vbCrLf & "<strPassWord>" & strPassWord & "</strPassWord>"

    strSoap = strSoap & vbCrLf & "</Account>"

    strSoap = strSoap & vbCrLf & "</soap:Header>"

    strSoap = strSoap & vbCrLf & "<soap:Body>"

   

    strSoap = strSoap & vbCrLf & "<GetReturn xmlns=TESTSOAP.WebService>"

   

    strSoap = strSoap & vbCrLf & "</GetReturn>"

   

    strSoap = strSoap & vbCrLf & "</soap:Body>"

    strSoap = strSoap & vbCrLf & "</soap:Envelope>"

   

    objHttp.open "POST", strUrl, False

    objHttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"

    objHttp.setRequestHeader "Content-Length", Len(strSoap)

    objHttp.setRequestHeader "SOAPAction", strUrl & "GetReturn"

 

    objHttp.send strSoap

   

    xmlDoc.async = False

    xmlDoc.loadXML (objHttp.responseText)

   

    TESTSoap = xmlDoc.selectNodes("//soap:Envelope//soap:Body//SoapCheckResponse//GetReturnResult").Item(0).Text

   

    Exit Function

ErrHandle:

    TESTSoap = "Communicate With Web Services Error"

End Function

SAP Web Service 认证设计,别把 HTTP 认证和 SOAP 消息认证混成一回事 SAP Web Service接口认证问题常出现在HTTP传输层与SOAP消息层的安全设计缺失。文章指出,仅配置URL和基础认证往往导致上线后暴露审计、授权和安全风险。SAP支持HTTP层(如Basic Auth)和SOAP消息层(基于WS Security标准)双重认证机制:前者解决点到点连接认证,后者通过SAML Token等技术实现端到端身份传播与消息完整性保护。实际项目中应结合HTTPS通道加密与SOAP层安全措施(如XML签名/用户身份传播),避免仅依赖硬编码服务用户带来的运维和安全缺陷。不同安全 阅读详情

相关推荐

SOAP Web Service 认证在 SAP ABAP 里的三层安全思路

本文探讨了SAP系统间SOAP接口改造中的安全认证问题。文章指出HTTPS传输层加密不足以保证业务级安全审计,区分了HTTP层认证和SOAP消息层认证的本质差异。针对传统固定技术用户方案存在的审计缺陷,分析了客户端证书认证的优缺点,并提出最佳实践应结合SAML等标准实现用户身份传播。作者建议在ABAP项目中采用WS-Security标准,通过SAML Token将业务用户身份从Consumer传递到Provider,确保操作可追溯到具体责任人,同时保持系统间通信的安全性。文中还提供了ABAP代码示例和SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 836

Soap身份基本认证方法

//客户端,服务消费者。//首先必须添加一个WebService的引用,在这里我添加引用的命名空间是localhost。        localhost.Service port = new localhost.Service();        localhost.header soapHeader = new localhost.header();        port.heade

Meinherz的专栏 4867

面向 ABAP 的 SOAP Web Service 消息级认证:WS-Security 实战全景指南

本文深入探讨了在SAP ABAP平台为SOAP Web Service启用消息级认证(WS-Security)的技术方案。首先分析了传输层认证的局限性,指出消息级认证在跨系统、多跳场景中的必要性。文章详细介绍了WS-Security标准规范,包括安全头、时间戳、签名加密以及各类安全令牌。针对ABAP平台,分别阐述了Provider端和Consumer端的配置步骤,并总结出三种典型落地模式:UsernameToken+Timestamp、X.509证书签名和SAML断言SSO。最后通过银行接口案例,展示了如何

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 242

WebService:实现添加Header并完成验证的服务

1. 声明 当前内容主要为本人记录使用webservice使用携带header的请求方式 主要内容为: 创建携带参数调用的webservice方法 创建携带header认证的方法 使用soapui方式测试请求 使用wsimport方式完成携带header验证的请求 2. 创建携带参数的webservice方法 创建实体类User @XmlRootElement public class User { private String username; private Integer id; // 省

编程学习者的博客 9835

SOAP 消息级认证在 SAP Web Service 集成里的落地逻辑

SOAP Web Service集成中,HTTPS只保障传输层安全,而消息级认证(如UsernameToken、X.509证书、SAML Token)和XML签名/加密提供了额外的安全层级,确保消息在传输、中转和处理过程中的完整性和身份验证。HTTPS保护客户端到服务端的连接,而消息级认证则随SOAP信封传递,适用于涉及ESB、API网关等中间件的复杂场景。SAP支持多种WS-Security Token Profile,其中UsernameToken适合简单接口,X.509证书提供强身份验证和签名,SAM

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2233

从 HTTP Header 到 SOAP Header,SAP Web Service 单点登录的两条认证路径

摘要: SAP Web Service SSO的核心在于跨系统传递可信身份,而非简单的登录便利。其支持两种认证方式: HTTP传输层认证:通过HTTP Header或TLS证书验证身份,适合点对点短链路场景,但跨多节点时身份传递易失效。 SOAP消息层认证:基于WS-Security标准,将安全令牌(如SAML、X.509)嵌入SOAP Header,确保端到端身份完整性和消息保护,适用于复杂调用链。 实际应用中,需根据场景选择:简单内网调用可用HTTP层认证;涉及多系统协作(如财务审计)时,SOAP消息层

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 450

webservice添加用户密码验证

一、增加maven 依赖 &lt;dependency&gt; &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt; &lt;artifactId&gt;cxf-rt-ws-security&lt;/artifactId&gt; &lt;version&gt;3.1.8&lt;/version&gt;

mxia520的博客 7653

ABAP 平台下的 SOAP Web Service 认证全景与实战:传输层、消息层与企业级单点登录的取舍与落地

摘要: 本文深入解析ABAP平台中SOAP Web Services的认证机制,对比HTTP传输层与SOAP消息层(WS-Security)的安全特性,提供三种安全方案(服务用户硬编码、客户端证书、SAML身份传播)的应用场景与实施建议。详细说明ABAP原生支持的WS-Security功能(UsernameToken/X.509/SAML)及XML签名/加密配置方法,结合SOAMANAGER、STRUST等工具的操作路径。通过三个真实案例(遗留系统UsernameToken改造、B2B的X.509签名加密、

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 192

WebService开发(一) 如何使用Soap头

平时写Web Service时经常会对Service的访问进行安全控制,方法很多,这里介绍一下如何用Soap头来进行控制的一例。第一步,引用需要用到的名称空间 usingSystem;usingSystem.Xml;usingSystem.Xml.Serialization;usingSystem.Web.Services;usingSystem.Web.Services....

weixin_30549175的博客 179

SAP SOAP 消息级认证,WS-Security 在 ABAP Web Service 中到底解决了什么问题

我最近在看一些老牌企业系统之间的接口方案时,经常看到一种很有年代感但仍然大量存在的架构,SAP S/4HANA 或 SAP NetWeaver AS ABAP 提供 SOAP Web Service,外围系统通过 ESB、SAP PI/PO、SAP Cloud Integration,或者供应商自研中间件来调用。接口能不能调通是一回事,认证和安全模型能不能设计对,往往才是后续运维里最容易踩坑的地方。很多项目一开始会直接把安全理解成 HTTPS。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 518

SAP ABAP Web Service 里的 SOAP 消息级认证,从 WS-Security 到端到端身份传递

本文探讨了ABAP Web Service中SOAP消息级认证的重要性和实现机制。文章指出,传统HTTP层认证在点对点连接中可行,但在跨系统、多中间节点的复杂集成场景下存在局限。SOAP消息级认证通过WS-Security标准将安全凭证嵌入消息头,实现端到端的安全保障。 核心观点包括: 消息级认证解决了中间节点转发时的身份传递问题,相比传输层认证更能保障端到端安全; WS-Security支持多种token profile(如UsernameToken、SAML等),并组合签名、加密、时间戳等机制形成完整安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 586

Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security

这里服务端开放了简单的SOAP的API,但是想获取数据时需要双向SSL以及WS-Security签名。 其中对应的xsd文件如下: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://spring.io/guides/gs-producing-web-service" targetNamespace="http://spring.io/guides/gs-producing-web

IT1995的博客 2400

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_83703866的博客 3167

java soap 头_Java 调用Web service 加入认证头(soapenv:Header)

前言有时候调用web service 会出现Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header found这种错误。以在 soapui 调用的结果来看, 会出现例如以下的返回出现这种错误的原因 是webservice 的服务端须要提供 soap 认证的...

weixin_29758911的博客 824

步进电机原理及梯形加速算法

步进电机重理解与梯形加速算法

weixin_39912966的博客 1324

使用 Python 实现无人机避障的人工势场算法

人工势场算法是一种基于力的控制方法,通过将目标位置视为一个吸引力源,而将障碍物视为排斥力源,来引导移动体朝着目标前进,同时避开障碍物。接下来,我们将定义几个类来实现人工势场算法,包括无人机类、障碍物类和势场类。

闲人编程的博客 2585

C# 调用 Java Web Service(带有用户SOAP认证) Xfire

最近做了一个Java作为服务端提供的Web Service,其中带有SOAP报文头用户认证,我用Java客户端测试通过,客户端为其他公司的C#人员调用,一直没调通,后来就把这个任务推给了我,参考http://blog.youkuaiyun.com/ypacyhero/archive/2010/04/29/5542519.aspx测试通过。  ...

crawler 512

Cadence仿真数字电路功耗

Cadence仿真数字电路功耗 数字电路的功耗采用平均电流乘电源电压获得,所以本文的关键是测量平均电流。 仿真前设置好仿真参数后,在仿真的ADE街边选择:outputs➡to be saved➡select on design 选择电源的负端电流(若选择正端,则电流为负): 选择完成后,在ADE界面讲所选节点的plot也勾选上,点击run。仿真完成后自动显示波形。在波形上选中该电流曲线,右击选择:send to➡calculator 注意上图中,商店前的波形不稳定,需要进行截取。在calculator

qq_41519780的博客 1万+

java soapenv_Java 调用Web service 添加认证头(soapenv:Header)

前言有时候调用web service 会出现Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header found这样的错误。以在 soapui 调用的结果来看, 会出现如下的返回出现这种错误的原因 是webservice 的服务端需要提供 soap 认证的表...

weixin_33122947的博客 1549

避坑指南:Qgis等时圈分析中ORS插件Key申请与参数设置的常见错误

本文详细解析了QGIS等时圈分析中ORS插件从API密钥申请到参数优化的全流程避坑指南。针对密钥激活、出行模式选择、时空参数设置等七个高频故障点,提供了实用的调试方案和优化技巧,帮助用户高效完成空间可达性分析。

weixin_42546508的博客 303

影楼精修-肤色统一算法解析

本文介绍了影楼精修中肤色统一算法的实现方案,并以像素蛋糕软件为例进行详细分析。肤色统一旨在通过调整人像照片中皮肤区域的颜色,使其看起来更加均匀一致。像素蛋糕软件提供了AI肤色统一和传统肤色统一两种功能,分别适用于不同需求。传统肤色统一算法通过皮肤分割、人脸检测、亮度统一和颜色统一等步骤,实现了对皮肤区域的精细调整。文章还提供了亮度统一的核心代码,并对比了传统算法与AI算法的效果,指出AI算法在自然度和亮度矫正方面表现更优。整体而言,本文为影楼精修中的肤色统一提供了实用的技术参考。

Trent1985的专栏 2068

使用curl提交SOAP请求

最近的项目,需要研究一下libcurl提交XML请求,顺便也用curl测试了一下SOAP请求。以下给出三种案例,方便以后查询。   1. curl提交无需认证的SOAP请求   这个案例使用webxml.com.cn的中国股票Web Service服务,SOAP消息和执行命令如下:   sh600000

The power of C, the secret of MD 2万+

使用ArcGIS Pro进行土地利用分类的机器学习与深度学习

传统的土地利用分类方法通常依赖于手动解译和规则定义,但随着机器学习和深度学习的发展,我们现在可以利用这些技术来自动化和提高分类的精度。ArcGIS Pro是一种功能强大的GIS软件,它提供了丰富的工具和功能,可以支持土地利用分类的机器学习和深度学习。我们将首先讨论数据准备和预处理的步骤,然后介绍常用的机器学习和深度学习方法,并提供相应的源代码示例。这可以通过人工标注或半自动的方式完成。数据裁剪:根据研究区域的范围,裁剪遥感影像数据,以减少计算和存储的负担,并确保只包含感兴趣的土地利用区域。

code_program481的博客 2039

java soapheader_Java 调用Web service 添加认证头(soapenv:Header)

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]前言cxf 加上认证头Axis2 加上认证头前言有时候调用web service 会出现Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]:No Security Header found这样的错误。以在 soapui ...

weixin_33168819的博客 1385

ORB-SLAM2算法4之KITTI开源数据集运行ORB-SLAM2生成轨迹并用evo工具评估轨迹

ORB-SLAM2算法1 已成功编译安装ORB-SLAM2到本地,本篇目的是用KITTI开源数据来运行ORB-SLAM2,并生成轨迹,最后用evo评估工具来评估ORB-SLAM2生成的轨迹和真值轨迹。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 2326

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: Com组件提供Web Services(二)
下一篇: TreeView(扩充XMLSelTree)(一)
笑对最好
博客等级 码龄24年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值