java 添加安全_java – 添加安全标头

搜索热词

我试图以下面的格式在Java Axis2客户端中生成安全头.

以下是我目前的代码:

SOAPHeaderElement wsseSecurity = new SOAPHeaderElement(

new PrefixedQName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd","Security","wsse"));

wsseSecurity.setMustUnderstand(true);

wsseSecurity.setActor(null);

SOAPElement sub =wsseSecurity.addChildElement("UsernameToken");

sub.setAttribute("wsu:Id","UsernameToken-2");

SOAPElement userElement = sub.addChildElement("Username");

userElement.addTextNode("xxx");

SOAPElement pwdElement = sub.addChildElement("Password");

pwdElement.setAttribute("Type","wsse:PasswordText");

pwdElement.addTextNode("xxx");

stub.setHeader(wsseSecurity);

最佳答案

这可能会帮到你.看一看:

private static final String cNODE_USRTOKEN = "UsernameToken";

private static final String cNODE_USERNAME = "Username";

private static final String cNODE_PASSWORD = "Password";

private String iUsername;

private String iPassword;

private static final Logger cTRACE = Logger.getLogger(UsernameTokenHandler.class.getName());

public Element getToken()

{

Element assertion = null;

SOAPElement soapElement = null;

try

{

SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();

SOAPPart sOAPPart = soapMessage.getSOAPPart();

SOAPEnvelope envelope = sOAPPart.getEnvelope();

SOAPHeader header = envelope.getHeader();

if (header==null)

{

// no header yet,create one

header = envelope.addHeader();

}

SOAPElement security = header.addChildElement("Security","wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

Name tUserTokenElementName = envelope.createName(cNODE_USRTOKEN,"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

SOAPElement tUserTokenElement = security.addChildElement(tUserTokenElementName);

tUserTokenElement.removeNamespaceDeclaration("wsse");

tUserTokenElement.addNamespaceDeclaration("wsu","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");

// user name child

Name tUsernameElementName = envelope.createName(cNODE_USERNAME,"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

SOAPElement tUsernameElement = tUserTokenElement.addChildElement(tUsernameElementName);

tUsernameElement.removeNamespaceDeclaration("wsse");

tUsernameElement.addTextNode(iUsername);

// password child

Name tPasswordElementName = envelope.createName(cNODE_PASSWORD,"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

SOAPElement tPasswordElement = tUserTokenElement.addChildElement(tPasswordElementName);

tPasswordElement.removeNamespaceDeclaration("wsse");

tPasswordElement.addTextNode(iPassword);

tPasswordElement.setAttribute("Type","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");

assertion = (Element) security;

//printAssertion(assertion);

//MessageElement samlElement = new MessageElement(assertion);

//SAMLHandler.setAssertion((SOAPElement) samlElement);

//soapElement = (SOAPElement) samlElement;

}

catch (Exception e)

{

if (cTRACE.isLoggable(Level.SEVERE))

{

cTRACE.logp(Level.SEVERE,UsernameTokenHandler.class.getName(),"handleMessage","Unable to add WSS credentials",e);

}

// stop processing

return assertion;

}

// continue processing

return assertion;

}

相关文章

总结

以上是编程之家为你收集整理的java – 添加安全标头全部内容,希望文章能够帮你解决java – 添加安全标头所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值