當前位置: 首頁>>代碼示例>>Java>>正文


Java SaslClient.dispose方法代碼示例

本文整理匯總了Java中javax.security.sasl.SaslClient.dispose方法的典型用法代碼示例。如果您正苦於以下問題:Java SaslClient.dispose方法的具體用法?Java SaslClient.dispose怎麽用?Java SaslClient.dispose使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.security.sasl.SaslClient的用法示例。


在下文中一共展示了SaslClient.dispose方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: destroy

import javax.security.sasl.SaslClient; //導入方法依賴的package包/類
@Override
public void destroy() {
    for (SaslClient saslClient : saslClients) {
        try {
            saslClient.dispose();
        } catch (SaslException e) {
            // ignore
        }
    }
}
 
開發者ID:mongodb,項目名稱:mongosql-auth-java,代碼行數:11,代碼來源:MongoSqlAuthenticationPlugin.java

示例2: safeDispose

import javax.security.sasl.SaslClient; //導入方法依賴的package包/類
static void safeDispose(SaslClient saslClient) {
  try {
    saslClient.dispose();
  } catch (SaslException e) {
    LOG.error("Error disposing of SASL client", e);
  }
}
 
開發者ID:apache,項目名稱:hbase,代碼行數:8,代碼來源:SaslUtil.java

示例3: main

import javax.security.sasl.SaslClient; //導入方法依賴的package包/類
public static void main(String[] args) throws Exception {

        Map<String, String> props = new TreeMap<String, String>();
        props.put(Sasl.QOP, "auth");

        // client
        SaslClient client = Sasl.createSaslClient(new String[]{ DIGEST_MD5 },
            "user1", "xmpp", "127.0.0.1", props, authCallbackHandler);
        if (client == null) {
            throw new Exception("Unable to find client implementation for: " +
                DIGEST_MD5);
        }

        byte[] response = client.hasInitialResponse()
            ? client.evaluateChallenge(EMPTY) : EMPTY;
        logger.info("initial: " + new String(response));

        // server
        byte[] challenge = null;
        SaslServer server = Sasl.createSaslServer(DIGEST_MD5, "xmpp",
          "127.0.0.1", props, authCallbackHandler);
        if (server == null) {
            throw new Exception("Unable to find server implementation for: " +
                DIGEST_MD5);
        }

        if (!client.isComplete() || !server.isComplete()) {
            challenge = server.evaluateResponse(response);

            logger.info("challenge: " + new String(challenge));

            if (challenge != null) {
                response = client.evaluateChallenge(challenge);
            }
        }

        String challengeString = new String(challenge, "UTF-8").toLowerCase();

        if (challengeString.indexOf("\"md5-sess\"") > 0 ||
            challengeString.indexOf("\"utf-8\"") > 0) {
            throw new Exception("The challenge string's charset and " +
                "algorithm values must not be enclosed within quotes");
        }

        client.dispose();
        server.dispose();
    }
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:48,代碼來源:NoQuoteParams.java

示例4: authenticate

import javax.security.sasl.SaslClient; //導入方法依賴的package包/類
@Override
public void authenticate(Socket sock, String hostName) throws IOException {
    if (!quorumRequireSasl) { // let it through, we don't require auth
        LOG.info("Skipping SASL authentication as {}={}",
                QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED,
                quorumRequireSasl);
        return;
    }
    SaslClient sc = null;
    String principalConfig = SecurityUtils
            .getServerPrincipal(quorumServicePrincipal, hostName);
    try {
        DataOutputStream dout = new DataOutputStream(
                sock.getOutputStream());
        DataInputStream din = new DataInputStream(sock.getInputStream());
        byte[] responseToken = new byte[0];
        sc = SecurityUtils.createSaslClient(learnerLogin.getSubject(),
                principalConfig,
                QuorumAuth.QUORUM_SERVER_PROTOCOL_NAME,
                QuorumAuth.QUORUM_SERVER_SASL_DIGEST, LOG, "QuorumLearner");

        if (sc.hasInitialResponse()) {
            responseToken = createSaslToken(new byte[0], sc, learnerLogin);
        }
        send(dout, responseToken);
        QuorumAuthPacket authPacket = receive(din);
        QuorumAuth.Status qpStatus = QuorumAuth.Status
                .getStatus(authPacket.getStatus());
        while (!sc.isComplete()) {
            switch (qpStatus) {
            case SUCCESS:
                responseToken = createSaslToken(authPacket.getToken(), sc,
                        learnerLogin);
                // we're done; don't expect to send another BIND
                if (responseToken != null) {
                    throw new SaslException(
                            "Protocol error: attempting to send response after completion"
                                    + ". Server addr: "
                                    + sock.getRemoteSocketAddress());
                }
                break;
            case IN_PROGRESS:
                responseToken = createSaslToken(authPacket.getToken(), sc,
                        learnerLogin);
                send(dout, responseToken);
                authPacket = receive(din);
                qpStatus = QuorumAuth.Status
                        .getStatus(authPacket.getStatus());
                break;
            case ERROR:
                throw new SaslException(
                        "Authentication failed against server addr: "
                                + sock.getRemoteSocketAddress());
            default:
                LOG.warn("Unknown status:{}!", qpStatus);
                throw new SaslException(
                        "Authentication failed against server addr: "
                                + sock.getRemoteSocketAddress());
            }
        }

        // Validate status code at the end of authentication exchange.
        checkAuthStatus(sock, qpStatus);
    } finally {
        if (sc != null) {
            try {
                sc.dispose();
            } catch (SaslException e) {
                LOG.error("SaslClient dispose() failed", e);
            }
        }
    }
    return;
}
 
開發者ID:l294265421,項目名稱:ZooKeeper,代碼行數:75,代碼來源:SaslQuorumAuthLearner.java


注:本文中的javax.security.sasl.SaslClient.dispose方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。