仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 361|回复: 7
打印 上一主题 下一主题

[学习教程] 来看Java Web 服务: Axis2 WS-Security基本

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:05:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
简介:懂得怎样将Rampart平安模块增加到ApacheAxis2并入手下手在Web服务中利用WS-Security特征。
平安性关于浩瀚企业服务来讲都是一个主要需求。而且,实验完成本人的平安性也颇具风险,由于任何巨大的忽略城市招致严峻的平安毛病。这些特性引发了人们对平安处置尺度化的乐趣,很多专家为尺度作出奉献并制止呈现任何团体的疏漏。基于SOAP的Web服务可使用普遍撑持的WS-Security和相干尺度来满意它们的平安需求,同意针对每种服务响应地设置平安性。
ApacheAxis2经由过程Rampart模块撑持这些平安尺度(见参考材料)。在本文中,您将看到怎样为Axis2安装、设置和利用Rampart以完成基础的平安功效,即在一个服务哀求中发送用户名和暗码。在本系列的后续文章中,您将了解怎样利用Rampart完成加倍庞大的平安性。
WS-Security
WS-Security是向SOAPWeb服务动静互换增加平安性的一种尺度(见参考材料)。它利用一个SOAP动静头部元素将平安信息附加到动静中,利用令牌(token)的情势传送分歧范例的声明(包含称号、身份、密匙、组、特权、功效等等)和加密和数字署名信息。WS-Security撑持多种情势的令牌、多个可托任域、多种署名格局和多种加密手艺,因而年夜多半情形下头部信息必要针对每种内容包括特定的格式和算法辨认。附加的信息会招致头部信息发生庞大的布局,如清单1所示(举行了大批编纂)—包含署名和加密的样例动静:
清单1.包括署名和加密的样例动静
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" ...>
 <soap:Header>
 <wsse:Security soap:mustUnderstand="1">
  <wsu:Timestamp wsu:Id="Timestamp-d2e3c4aa-da82-4138-973d-66b596d66b2f">
  <wsu:Created>2006-07-11T21:59:32Z</wsu:Created>
  <wsu:Expires>2006-07-12T06:19:32Z</wsu:Expires>
  </wsu:Timestamp>
  <wsse:BinarySecurityToken ValueType="...-x509-token-profile-1.0#X509v3"
   EncodingType="...-wss-soap-message-security-1.0#Base64Binary"
   xmlns:wsu="...oasis-200401-wss-wssecurity-utility-1.0.xsd"
   wsu:Id="SecurityToken-faa295...">MIIEC56MQswCQY...</wsse:BinarySecurityToken>
  <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
  <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
   <wsse:SecurityTokenReference>
   <wsse:KeyIdentifier ValueType=
    "...#X509SubjectKeyIdentifier">LlYsHyhNnOVA9Aj7...</wsse:KeyIdentifier>
   </wsse:SecurityTokenReference>
  </KeyInfo>
  <xenc:CipherData>
   <xenc:CipherValue>g+A2WJhsoGBKUydZ9Za...</xenc:CipherValue>
  </xenc:CipherData>
  <xenc:ReferenceList>
   <xenc:DataReference URI="#EncryptedContent-ba0556c3-d443-4f34-bcd1-14cbc32cd689" />
  </xenc:ReferenceList>
  </xenc:EncryptedKey>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
  <SignedInfo>
   <ds:CanonicalizationMethod
    Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
   <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
   <Reference URI="#Id-c80f735c-62e9-4001-8094-702a4605e429">
   <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
   </Transforms>
   <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
   <DigestValue>lKjc5nyLQDZAIu/hZb4B6mLquow=</DigestValue>
   </Reference>
   ...
  </SignedInfo>
  <SignatureValue>TiLmWvlz3mswinLVQn58BgYS0368...</SignatureValue>
  <KeyInfo>
   <wsse:SecurityTokenReference>
   <wsse:Reference URI="#SecurityToken-faa295..."
    ValueType="...-x509-token-profile-1.0#X509v3" />
   </wsse:SecurityTokenReference>
  </KeyInfo>
  </Signature>
 </wsse:Security>
 </soap:Header>
 <soap:Body wsu:Id="Id-8db9ff44-7bef-4737-8091-cdac51a34db8">
 <xenc:EncryptedData Id="EncryptedContent-ba05..."
  Type="http://www.w3.org/2001/04/xmlenc#Content"
  xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
  <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
  <xenc:CipherData>
  <xenc:CipherValue>mirmi0KuFEEI56eu2U3cICz...</xenc:CipherValue>
  </xenc:CipherData>
 </xenc:EncryptedData>
 </soap:Body>
</soap:Envelope>
<p>
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具
若天明 该用户已被删除
7#
发表于 2015-3-26 20:28:23 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
精灵巫婆 该用户已被删除
6#
发表于 2015-3-19 00:55:31 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
若相依 该用户已被删除
5#
发表于 2015-3-11 16:09:32 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
老尸 该用户已被删除
地板
发表于 2015-3-4 03:58:09 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
小妖女 该用户已被删除
板凳
 楼主| 发表于 2015-2-5 22:59:23 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
乐观 该用户已被删除
沙发
发表于 2015-1-29 07:08:59 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小女巫 该用户已被删除
楼主
发表于 2015-1-20 12:32:23 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 15:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表