当前位置:喾鸥云 > 云虚拟主机 > 正文

云数据库_云主机和主机_三重好礼

云数据库_云主机和主机_三重好礼

根据XML安全要求,不允许使用相对名称空间,当相对名称空间出现在结构中时,消息将被AXIS/PI拆分为多个部分/附件。

如果第三方更正了其有关相对名称空间的问题,则AXIS适配器将执行此项工作。

但此文档是无效的为了提供一个替代方案,而不是依赖于轴,直到双方对其结构的相对名称空间进行更正

根据规范,国内云服务器,密码摘要逻辑是Base64(SHA-1(nonce+created Time+password))所以我们在映射级别,并根据第三方要求构造SOAP信封、正文有效负载

生成令牌,我们使用apache commons编解码器,一旦令牌和nonce出现,我们就使用自定义SOAP信封绕过AXIS MIME。

public void transform(TransformationInput,TransformationOutput)

抛出StreamTransformationException{

String userName="userid";

String password="password";

String nonconstring="";

String pwdgest="";

try{

nonconstring=genNonce();

}catch(UnsupportedEncodingException e1){

e1.printStackTrace();

}

String formatedTime=getFormatedTime();

试试{

pwdgest=getPasswordDigestFromClearTextPW(

非限制.getBytes("UTF-8"),格式化时间.getBytes("UTF-8"),

密码);

}catch(nosuchalgorithexception e1){

e1.printStackTrace();

}catch(UnsupportedEncodingException e1){

e1.printStackTrace();

}

私有字符串getPasswordDigestFromClearTextPW(byte[]nonce,

byte[]created,云主机,String password)抛出NoSuchAlgorithmException,

UnsupportedEncodingException{

MessageDigest sha1=getMessageDigest();

if(nonce!=null){

sha1.update(nonce);

}

if(已创建!=null){

sha1.update(created);

}

String passwordDigest=new String(Base64.encodeBase64(sha1

digest(getHash(password)));

sha1.reset();

return passwordDigest;

}

/*

获取nonce字符串。

*/

private String genNonce()抛出不支持的编码异常{

SecureRandom random=null;

int length=128;

try{

random = SecureRandom.getInstance实例("SHA1PRNG");

}catch(nosuchalgorithme){

e.printStackTrace();

}

byte[]nonceValue=新字节[length/8];

随机.nextBytes(nonevalue);

返回新字符串(Base64.encodeBase64(nonevalue),"UTF-8");

}

/*

*生成符合REST标准格式的当前时间。

*/

私有字符串getFormattedTime(){

Date Date=new Date();

DateFormat zuluTime=new SimpleDateFormat("yyyy-MM-dd'T'HH:MM:ss'Z'");

zuluTime.set时区(时区.getTimeZone("UTC");

返回zuluTime.format格式(日期);

}

/*

*生成符合REST标准格式的当前时间+5分钟。

*/

私有字符串getExpiredTime(){

日历校准=日历.getInstance();

校准添加(日历.分钟,5);

日期:=卡盖蒂();

DateFormat zuluTime=new SimpleDateFormat("yyyy-MM-dd'T'HH:MM:ss'Z'");

zuluTime.set时区(时区.getTimeZone("UTC");

返回zuluTime.format格式(newmins);

}

/***

*获取字符串的SHA–1散列。这是一个帮助程序方法,首先对密码进行哈希

*以便将密码哈希提供给passwordDigest。

*

*所有的摘要都在UTF–8编码中完成。

*

*@param string

*@返回UTF8编码字符串的SHA–1哈希

*@throws NoSuchAlgorithmException

*@throws UnsupportedEncodingException

*/

private byte[]getHash(String String)抛出NoSuchAlgorithmException,

UnsupportedEncodingException{

MessageDigest sha1=getMessageDigest();

/*

*Java字符串是UTF-16,因此在进行摘要时使用UTF-8编码作为

*这是Internet上的标准做法。

*/

byte[]hash=getMessageDigest().digest(string.getBytes文件("UTF-8");

sha1.reset();

return hash;

}

/**

*获取给定算法的MessageDigest实例

*

*@return MessageDigest实例

*@抛出NoSuchAlgorithmException

*/

protected MessageDigest getMessageDigest()抛出NoSuchAlgorithmException{

returnMessageDigest.getInstance消息摘要("SHA-1");

}

我想借此机会感谢PI专家Sebin发现了这个问题,极速云服务器,什么叫云服务,并让我们进一步了解这个问题。同时感谢认知团队在实现此界面时分享了他们的观点。

Prasad Konda。

嗨,Prasad,

我知道这是3年前发布的,数据灾备中心,我很抱歉这么晚才问。关于上面的自定义代码,是否需要在sappi中部署其他的输入,比如什么编解码器或jar文件?

版权保护: 本文由 喾鸥云 原创,转载请保留链接: /html/134711.html

喾鸥云
喾鸥云是一家为企业和开发者提供安全稳定的云计算服务,涵盖云服务器、云数据库、云存储等全方位云服务的服务商。
  • 文章总数
  • 16884311访问次数
  • 建站天数