当前位置: 首页>>代码示例>>Java>>正文


Java WSSecUsernameToken.addNonce方法代码示例

本文整理汇总了Java中org.apache.ws.security.message.WSSecUsernameToken.addNonce方法的典型用法代码示例。如果您正苦于以下问题:Java WSSecUsernameToken.addNonce方法的具体用法?Java WSSecUsernameToken.addNonce怎么用?Java WSSecUsernameToken.addNonce使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.ws.security.message.WSSecUsernameToken的用法示例。


在下文中一共展示了WSSecUsernameToken.addNonce方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createUserNameToken

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
private SOAPMessage createUserNameToken(Document soapEnvelopeRequest) throws IOException, SOAPException, TransformerException {
	WSSecHeader wsSecHeader = new WSSecHeader(null, false);
	wsSecHeader.insertSecurityHeader(soapEnvelopeRequest);
	
	WSSecUsernameToken wsSecUsernameToken = new WSSecUsernameToken();
	wsSecUsernameToken.setUserInfo(this.username, this.password);
	wsSecUsernameToken.prepare(soapEnvelopeRequest);
	wsSecUsernameToken.addCreated();
	wsSecUsernameToken.addNonce();

	Document secSOAPReqDoc = wsSecUsernameToken.build(soapEnvelopeRequest, wsSecHeader);
	Element element = secSOAPReqDoc.getDocumentElement();

	DOMSource source = new DOMSource(element);
	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	StreamResult streamResult = new StreamResult(baos);
	TransformerFactory.newInstance().newTransformer().transform(source, streamResult);

	String secSOAPReq = new String(baos.toByteArray());
	SOAPMessage res = new org.apache.axis.soap.MessageFactoryImpl().createMessage(null, new ByteArrayInputStream(secSOAPReq.getBytes()));

	return res;
}
 
开发者ID:GovernIB,项目名称:helium,代码行数:24,代码来源:AfirmaSecurityHandler.java

示例2: testFailedAuthentication

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
/**
 * Test for the wsse:FailedAuthentication faultcode. This will fail due to a bad password in
 * the callback handler.
 */
public void testFailedAuthentication() throws Exception {
    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.addCreated();
    builder.addNonce();
    builder.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
    
    Document doc = unsignedEnvelope.getAsDocument();
    WSSecHeader secHeader = new WSSecHeader();
    secHeader.insertSecurityHeader(doc);        
    Document timestampedDoc = builder.build(doc, secHeader);
    
    try {
        verify(timestampedDoc);
    } catch (WSSecurityException ex) {
        assertTrue(ex.getErrorCode() == 5);
        assertTrue(ex.getMessage().startsWith(
            "The security token could not be authenticated or authorized"));
        QName faultCode = new QName(WSConstants.WSSE_NS, "FailedAuthentication");
        assertTrue(ex.getFaultCode().equals(faultCode));
    }
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:26,代码来源:TestWSSecurityFaultCodes.java

示例3: testInvalidSecurityToken

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
/**
 * Test for the wsse:InvalidSecurityToken faultcode. This will fail due to the fact
 * that a null username is used.
 */
public void testInvalidSecurityToken() throws Exception {
    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.addCreated();
    builder.addNonce();
    builder.setUserInfo(null, "security");
    
    Document doc = unsignedEnvelope.getAsDocument();
    WSSecHeader secHeader = new WSSecHeader();
    secHeader.insertSecurityHeader(doc);        
    builder.build(doc, secHeader);
    
    try {
        new UsernameToken(doc.getDocumentElement());
    } catch (WSSecurityException ex) {
        assertTrue(ex.getErrorCode() == 4);
        assertTrue(ex.getMessage().startsWith(
            "An invalid security token was provided"));
        QName faultCode = new QName(WSConstants.WSSE_NS, "InvalidSecurityToken");
        assertTrue(ex.getFaultCode().equals(faultCode));
    }
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:26,代码来源:TestWSSecurityFaultCodes.java

示例4: execute

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
public void execute(WSHandler handler, int actionToDo, Document doc, RequestData reqData)
        throws WSSecurityException {
    
    // Always call the callback for the username. We mis-use the configured password callback class and callback methods for this.
    String providedUsername = reqData.getUsername();
    WSPasswordCallback callbackData = handler.getPassword(reqData.getUsername(),
                    actionToDo,
                    WSHandlerConstants.PW_CALLBACK_CLASS,
                    WSHandlerConstants.PW_CALLBACK_REF, reqData);
    providedUsername = callbackData.getIdentifier();
    String password = callbackData.getPassword();

    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.setWsConfig(reqData.getWssConfig());
    builder.setPasswordType(reqData.getPwType());
    builder.setPasswordsAreEncoded(reqData.getWssConfig().getPasswordsAreEncoded());
    builder.setUserInfo(providedUsername, password);

    if (reqData.getUtElements() != null && reqData.getUtElements().length > 0) {
        for (int j = 0; j < reqData.getUtElements().length; j++) {
            reqData.getUtElements()[j].trim();
            if (reqData.getUtElements()[j].equals("Nonce")) {
                builder.addNonce();
            }
            if (reqData.getUtElements()[j].equals("Created")) {
                builder.addCreated();
            }
            reqData.getUtElements()[j] = null;
        }
    }
    builder.build(doc, reqData.getSecHeader());        
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:33,代码来源:UsernameTokenAction.java

示例5: testUsernameTokenSigning

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
/**
 * Test the specific signing method that use UsernameToken values
 * <p/>
 * 
 * @throws java.lang.Exception Thrown when there is any problem in signing or verification
 */
public void testUsernameTokenSigning() throws Exception {
    Document doc = unsignedEnvelope.getAsDocument();

    WSSecHeader secHeader = new WSSecHeader();
    secHeader.insertSecurityHeader(doc);

    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.setPasswordType(WSConstants.PASSWORD_TEXT);
    builder.setUserInfo("wernerd", "verySecret");
    builder.addCreated();
    builder.addNonce();
    builder.prepare(doc);
    
    WSSecSignature sign = new WSSecSignature();
    sign.setUsernameToken(builder);
    sign.setKeyIdentifierType(WSConstants.UT_SIGNING);
    sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
    LOG.info("Before signing with UT text....");
    sign.build(doc, null, secHeader);
    LOG.info("Before adding UsernameToken PW Text....");
    builder.prependToHeader(secHeader);
    Document signedDoc = doc;
    if (LOG.isDebugEnabled()) {
        LOG.debug("Message with UserNameToken PW Text:");
        String outputString = 
            org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
        LOG.debug(outputString);
    }
    LOG.info("After adding UsernameToken PW Text....");
    verify(signedDoc);
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:38,代码来源:TestWSSecurityNew13.java

示例6: testUsernameTokenSigningDigest

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
/**
 * Test the specific signing method that use UsernameToken values
 * <p/>
 * 
 * @throws java.lang.Exception Thrown when there is any problem in signing or verification
 */
public void testUsernameTokenSigningDigest() throws Exception {
    Document doc = unsignedEnvelope.getAsDocument();

    WSSecHeader secHeader = new WSSecHeader();
    secHeader.insertSecurityHeader(doc);

    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.setPasswordType(WSConstants.PASSWORD_DIGEST);
    builder.setUserInfo("wernerd", "verySecret");
    builder.addCreated();
    builder.addNonce();
    builder.prepare(doc);
    
    WSSecSignature sign = new WSSecSignature();
    sign.setUsernameToken(builder);
    sign.setKeyIdentifierType(WSConstants.UT_SIGNING);
    sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
    LOG.info("Before signing with UT digest....");
    sign.build(doc, null, secHeader);
    LOG.info("Before adding UsernameToken PW Digest....");
    builder.prependToHeader(secHeader);
    Document signedDoc = doc;
    if (LOG.isDebugEnabled()) {
        LOG.debug("Message with UserNameToken PW Digest:");
        String outputString = 
            org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
        LOG.debug(outputString);
    }
    LOG.info("After adding UsernameToken PW Digest....");
    verify(signedDoc);
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:38,代码来源:TestWSSecurityNew13.java

示例7: testWSS226

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
/**
 * Test that uses a 32 byte key length for the secret key, instead of the default 16 bytes.
 */
public void testWSS226() throws Exception {
    Document doc = unsignedEnvelope.getAsDocument();

    WSSecHeader secHeader = new WSSecHeader();
    secHeader.insertSecurityHeader(doc);

    WSSecUsernameToken builder = new WSSecUsernameToken();
    builder.setPasswordType(WSConstants.PASSWORD_TEXT);
    builder.setUserInfo("wernerd", "verySecret");
    builder.addCreated();
    builder.setSecretKeyLength(32);
    builder.addNonce();
    builder.prepare(doc);
    
    WSSecSignature sign = new WSSecSignature();
    sign.setUsernameToken(builder);
    sign.setKeyIdentifierType(WSConstants.UT_SIGNING);
    sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
    LOG.info("Before signing with UT text....");
    sign.build(doc, null, secHeader);
    LOG.info("Before adding UsernameToken PW Text....");
    builder.prependToHeader(secHeader);
    Document signedDoc = doc;
    if (LOG.isDebugEnabled()) {
        LOG.debug("Message using a 32 byte key length:");
        String outputString = 
            org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
        LOG.debug(outputString);
    }
    
    //
    // It should fail on the default key length of 16...
    //
    try {
        secEngine.processSecurityHeader(doc, null, this, null);
        fail ("An error was expected on verifying the signature");
    } catch (Exception ex) {
        // expected
    }
    
    WSSecurityEngine wss226SecurityEngine = new WSSecurityEngine();
    WSSConfig wssConfig = WSSConfig.getNewInstance();
    wssConfig.setSecretKeyLength(32);
    wss226SecurityEngine.setWssConfig(wssConfig);
    wss226SecurityEngine.processSecurityHeader(doc, null, this, null);
}
 
开发者ID:wso2,项目名称:wso2-wss4j,代码行数:50,代码来源:TestWSSecurityNew13.java

示例8: signMessage

import org.apache.ws.security.message.WSSecUsernameToken; //导入方法依赖的package包/类
public String signMessage(String soapMessage, String user, String password) throws SenderException {
	try {
		WSSecurityEngine secEngine = WSSecurityEngine.getInstance();
		WSSConfig config = secEngine.getWssConfig();
		config.setPrecisionInMilliSeconds(false);

		// create context
		AxisClient tmpEngine = new AxisClient(new NullProvider());
		MessageContext msgContext = new MessageContext(tmpEngine);

		InputStream in = new ByteArrayInputStream(soapMessage.getBytes());
		Message msg = new Message(in);
		msg.setMessageContext(msgContext);

		// create unsigned envelope
		SOAPEnvelope unsignedEnvelope = msg.getSOAPEnvelope();
		Document doc = unsignedEnvelope.getAsDocument();

		// create security header and insert it into unsigned envelope
		WSSecHeader secHeader = new WSSecHeader();
		secHeader.insertSecurityHeader(doc);

		// add a UsernameToken
		WSSecUsernameToken tokenBuilder = new WSSecUsernameToken();
		tokenBuilder.setPasswordType(WSConstants.PASSWORD_DIGEST);
		tokenBuilder.setUserInfo(user, password);
		tokenBuilder.addNonce();
		tokenBuilder.addCreated();
		tokenBuilder.prepare(doc);

		WSSecSignature sign = new WSSecSignature();
		sign.setUsernameToken(tokenBuilder);
		sign.setKeyIdentifierType(WSConstants.UT_SIGNING);
		sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
		sign.build(doc, null, secHeader);

		tokenBuilder.prependToHeader(secHeader);

		// add a Timestamp
		WSSecTimestamp timestampBuilder = new WSSecTimestamp();
		timestampBuilder.setTimeToLive(300);
		timestampBuilder.prepare(doc);
		timestampBuilder.prependToHeader(secHeader);

		Document signedDoc = doc;

		return DOM2Writer.nodeToString(signedDoc);

	} catch (Exception e) {
		throw new SenderException(e);
	}
}
 
开发者ID:ibissource,项目名称:iaf,代码行数:53,代码来源:SoapWrapper.java


注:本文中的org.apache.ws.security.message.WSSecUsernameToken.addNonce方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。