当前位置: 首页 > news >正文

广东建设银行网站首页w3school网站建设教程

广东建设银行网站首页,w3school网站建设教程,支付网站建设要求,怎么学网站开发一: Web Service security UserNameToken 概念 原理#xff1a;用户在发送请求的时候#xff0c;在Soap head中加入自己的用户名以及密码#xff0c;接受请求的Service通过之前与Client建立的共享密码来验证密码的合法性从而实现鉴别用户的功能。 wsse:UsernameToken用户在发送请求的时候在Soap head中加入自己的用户名以及密码接受请求的Service通过之前与Client建立的共享密码来验证密码的合法性从而实现鉴别用户的功能。 wsse:UsernameToken      wsse:UsernameNNK/wsse:Username      wsse:Password Type...#PasswordDigest           weYI3nXd8LjMNVksCKFV8t3rgHh3Rw      /wsse:Password      wsse:NonceWScqanjCEAC4mQoBE07sAQ/wsse:Nonce      wsu:Created2003-07-16T01:24:32Z/wsu:Created  /wsse:UsernameToken  Password_Digest Base64 ( SHA-1 ( nonce created password ) ) wsse:Nonce和wsu:Created这两个元素的作用是为了避免重放(Replay)***。 只要对密码做一些处理就可以从中派生出密钥。当然为了安全起见我们希望每次派生出来的密钥都不一样这样就可以避免多次使用同一密钥而导致密钥被破解。下面就是WS-Security对密钥派生的元素定义 wsse:UsernameToken wsse:Id”…”      wsse:Username…/wsse:Username      wsse11:Salt…/wsse11:Salt      wsse11:Iteration…/wsse11:Iteration  /wsse:UsernameToken  其中Salt是导致密钥变化的因子Iteration是密钥派生时Hash的次数。密码的派生公式如下 K1 SHA1( password Salt)  K2 SHA1( K1 )  … Kn SHA1 ( Kn-1) 二:代码示例 xml文件 Request xml soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:webhttp://www.webserviceX.NET/    soapenv:Header/    soapenv:Body       web:ConversionRate          web:FromCurrency1/web:FromCurrency          web:ToCurrency2/web:ToCurrency       /web:ConversionRate    /soapenv:Body /soapenv:Envelope  Response xml soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:webhttp://www.webserviceX.NET/    soapenv:Header/    soapenv:Body       web:ConversionRateResponse          web:ConversionRateResult88/web:ConversionRateResult       /web:ConversionRateResponse    /soapenv:Body /soapenv:Envelope    1 直接使用httpclient调用service     public static String soapSpecialConnection(String url) throws Exception     {     //拼装soap请求报文         StringBuilder sb  new StringBuilder();         StringBuilder soapHeader  new StringBuilder();         soapHeader.append(SOAP-ENV:Envelope xmlns:SOAP-ENV\http://schemas.xmlsoap.org/soap/envelope/\ xmlns:web\http://www.webserviceX.NET/\);         soapHeader.append(SOAP-ENV:Header/);         soapHeader.append(SOAP-ENV:Body);         soapHeader.append(web:ConversionRate);         soapHeader.append(web:FromCurrency123/web:FromCurrency);         soapHeader.append(web:ToCurrency123/web:ToCurrency);         soapHeader.append(/web:ConversionRate);         soapHeader.append(/SOAP-ENV:Body);         soapHeader.append(/SOAP-ENV:Envelope);                  //设置soap请求报文的相关属性         URL u  new URL(url);         HttpURLConnection conn  (HttpURLConnection) u.openConnection();         conn.setDoInput(true);         conn.setDoOutput(true);         conn.setUseCaches(false);         conn.setDefaultUseCaches(false);         conn.setRequestProperty(Host, localhost:8080);         conn.setRequestProperty(Content-Type, text/xml; charsetutf-8);         conn.setRequestProperty(Content-Length, String.valueOf(soapHeader.length()));         conn.setRequestProperty(SOAPAction, );         conn.setRequestMethod(POST);         //定义输出流         OutputStream output  conn.getOutputStream();         if (null ! soapHeader) {             byte[] b  soapHeader.toString().getBytes(utf-8);             //发送soap请求报文             output.write(b, 0, b.length);         }         output.flush();         output.close();         //定义输入流获取soap响应报文         InputStream input  conn.getInputStream();         int c  -1;         //sb为返回的soap响应报文字符串         while (-1 ! (c  input.read())) {             sb.append((char)c);         }         input.close();         return sb.toString();      }    2 使用apache的axis 来调用service private void callRequest() throws SOAPException {         String    NAMESPACE_URI  http://www.webserviceX.NET/;         String    PREFIX         web;         String url  http://localhost:28080/MockService;                   SOAPConnectionFactory connectionFactorySOAPConnectionFactory.newInstance();          MessageFactory        messageFactoryMessageFactory.newInstance();          SOAPFactory           soapFactory  SOAPFactory.newInstance();                  SOAPMessage message  messageFactory.createMessage();         SOAPEnvelope envelope  message.getSOAPPart().getEnvelope();         envelope.addNamespaceDeclaration(PREFIX, NAMESPACE_URI);         Name requestName  soapFactory.createName(ConversionRate, PREFIX, NAMESPACE_URI);         SOAPBodyElement trackRequestElement  message.getSOAPBody().addBodyElement(requestName);         SOAPElement element1, element2;          element1  trackRequestElement.addChildElement(soapFactory.createName(FromCurrency, PREFIX, NAMESPACE_URI));         element2  trackRequestElement.addChildElement(soapFactory.createName(ToCurrency, PREFIX, NAMESPACE_URI));         element1.addTextNode(123);         element2.addTextNode(123);          MimeHeaders hd  message.getMimeHeaders();         hd.setHeader(SOAPAction, );         hd.setHeader(Content-Type, text/xml; charsetutf-8);          SOAPConnection connection  connectionFactory.createConnection();         SOAPMessage response  connection.call(message, url);          }    3 输出为xml便于调试 public void wirteToxml(String fileName, SOAPMessage request) throws Exception {       FileWriter fw  new FileWriter(fileName, true); // outputFile为要写入的.xml文件如result.xml       BufferedWriter bw  new BufferedWriter(fw);       Source source  request.getSOAPPart().getContent();       Transformer transformer  TransformerFactory.newInstance().newTransformer();       ByteArrayOutputStream myOutStr  new ByteArrayOutputStream();       StreamResult res  new StreamResult();       res.setOutputStream(myOutStr);       transformer.transform(source, res);       String temp  myOutStr.toString().trim();        bw.write(temp);       bw.newLine();       bw.flush();       bw.close();   }    4 设置 web service security     protected void buildHeader(SOAPMessage message) throws SOAPException {         String username  1234;         String password  1234;         final String SECURITY_PREFIX  wsse;         SOAPEnvelope envelope  message.getSOAPPart().getEnvelope();         SOAPHeader soapHead  message.getSOAPHeader();         SOAPHeaderElement security  soapHead.addHeaderElement(envelope.createName(Security, SECURITY_PREFIX,                                                                                    http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd));         security.setMustUnderstand(true); // 服务方必须能够识别校验否则失败          SOAPElement usernameToken  security.addChildElement(UsernameToken, SECURITY_PREFIX);         usernameToken.addNamespaceDeclaration(wsu,                                               http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd);          SOAPElement usernameNode  usernameToken.addChildElement(Username, SECURITY_PREFIX);         usernameNode.setValue(username);          SOAPElement passwordNode  usernameToken.addChildElement(Password, SECURITY_PREFIX);         passwordNode.setAttribute(Type,                                   http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText);         passwordNode.setValue(password); }   mustUnderstand用于标注security header是否必须被service端解析处理 三:测试工具 TCPMon :   http://ws.apache.org/commons/tcpmon/tcpmontutorial.html 可视化发送请求的信息以及返回结果的信息便于调试         转载于:https://blog.51cto.com/drizzlewalk/1149515
http://www.huolong8.cn/news/344067/

相关文章:

  • 梅州建站网络科技有限公司成都建工网站
  • 临沂河东网站建设免费手机网站商城
  • 一级a做爰片免费网站php网站运行很慢
  • 网站自助授权系统网站建设中 模板
  • 免费 网站 如何做服务周到的上海网站建设
  • 长白山网站学做管理制作网站哪家专业
  • 如何创建一个和淘宝一样的网站怎样才能做一个优质的外贸网站
  • 天门网站设计高端网站建设个人
  • 怎么知道公司网站是哪家做的网站建设代码结构
  • 揭阳网站建设工作做非洲外贸的网站
  • APP网站开发联系电话电子工程网名又知道你是做工程
  • 做黄金期货的网站萍乡网页设计
  • 上海企业模板建站c 微网站开发
  • 网页技术与网站开发分析报告国家建设执业注册中心网站
  • 网站建设专家cms华为云云速建站
  • 网站制作和网页制作区别金点子创业项目
  • 龙口有没有做网站的推广软件是什么
  • 来个网站吧好人一生平安2022下载百度语音导航地图安装
  • 哪个网站容易做二级域名移动物联网流量卡
  • 东台网站制作外链是不是把自己的网站信息发布到别人的网站上?
  • dw成品网站成品视频教学网站外网访问怎么做路由器端口映射
  • 宁波seo咨询保定网站优化
  • 如何查询网站的建设商自学软件网站开发
  • 网站规划的原则有河南怎么样做网站
  • 电脑上做简单的网站中文html5网站欣赏
  • 网站分析一般要重点做哪几项内容山西省建设厅政务中心网站
  • 免费网站空间怎么办山西建设厅网站
  • 怎么制作一个网站的二维码湖南网站备案需要多久
  • 做网站需要去工商备案吗2012年网站设计方法
  • 工厂做哪个网站好thinkphp网站模板