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


Java Success类代码示例

本文整理汇总了Java中org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success的典型用法代码示例。如果您正苦于以下问题:Java Success类的具体用法?Java Success怎么用?Java Success使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Success类属于org.jivesoftware.smack.sasl.packet.SaslStreamElements包,在下文中一共展示了Success类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: authenticated

import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; //导入依赖的package包/类
/**
 * Notification message saying that SASL authentication was successful. The next step
 * would be to bind the resource.
 * @throws SmackException 
 */
public void authenticated(Success success) throws SmackException {
    // RFC6120 6.3.10 "At the end of the authentication exchange, the SASL server (the XMPP
    // "receiving entity") can include "additional data with success" if appropriate for the
    // SASL mechanism in use. In XMPP, this is done by including the additional data as the XML
    // character data of the <success/> element." The used SASL mechanism should be able to
    // verify the data send by the server in the success stanza, if any.
    if (success.getData() != null) {
        challengeReceived(success.getData(), true);
    }
    currentMechanism.checkIfSuccessfulOrThrow();
    authenticationSuccessful = true;
    // Wake up the thread that is waiting in the #authenticate method
    synchronized (this) {
        notify();
    }
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:22,代码来源:SASLAuthentication.java

示例2: responseReceived

import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; //导入依赖的package包/类
/**
 * Parse the received packets and notify the corresponding connection.
 *
 * @param event the BOSH client response which includes the received packet.
 */
public void responseReceived(BOSHMessageEvent event) {
    AbstractBody body = event.getBody();
    if (body != null) {
        try {
            if (sessionID == null) {
                sessionID = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "sid"));
            }
            if (streamId == null) {
                streamId = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "authid"));
            }
            final XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
            parser.setInput(new StringReader(body.toXML()));
            int eventType = parser.getEventType();
            do {
                eventType = parser.next();
                switch (eventType) {
                case XmlPullParser.START_TAG:
                    String name = parser.getName();
                    switch (name) {
                    case Message.ELEMENT:
                    case IQ.IQ_ELEMENT:
                    case Presence.ELEMENT:
                        parseAndProcessStanza(parser);
                        break;
                    case "challenge":
                        // The server is challenging the SASL authentication
                        // made by the client
                        final String challengeData = parser.nextText();
                        getSASLAuthentication().challengeReceived(challengeData);
                        break;
                    case "success":
                        send(ComposableBody.builder().setNamespaceDefinition("xmpp",
                                        XMPPBOSHConnection.XMPP_BOSH_NS).setAttribute(
                                        BodyQName.createWithPrefix(XMPPBOSHConnection.XMPP_BOSH_NS, "restart",
                                                        "xmpp"), "true").setAttribute(
                                        BodyQName.create(XMPPBOSHConnection.BOSH_URI, "to"), getServiceName()).build());
                        Success success = new Success(parser.nextText());
                        getSASLAuthentication().authenticated(success);
                        break;
                    case "features":
                        parseFeatures(parser);
                        break;
                    case "failure":
                        if ("urn:ietf:params:xml:ns:xmpp-sasl".equals(parser.getNamespace(null))) {
                            final SASLFailure failure = PacketParserUtils.parseSASLFailure(parser);
                            getSASLAuthentication().authenticationFailed(failure);
                        }
                        break;
                    case "error":
                        throw new StreamErrorException(PacketParserUtils.parseStreamError(parser));
                    }
                    break;
                }
            }
            while (eventType != XmlPullParser.END_DOCUMENT);
        }
        catch (Exception e) {
            if (isConnected()) {
                notifyConnectionError(e);
            }
        }
    }
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:70,代码来源:XMPPBOSHConnection.java


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