Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Apache ZooKeeper Server Source Code
Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination.
Apache ZooKeeper Server Source Code files are provided in the source package file, apache-zookeeper-3.8.0.tar.gz.
You can download apache-zookeeper-3.8.0.tar.gz as described in the previous tutorial and go to the "zookeeper-server" sub-folder to view Apache ZooKeeper Server Source Code files.
You can also browse Apache ZooKeeper Server Source Code below:
✍: FYIcenter.com
⏎ org/apache/zookeeper/common/ZKTrustManager.java
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.zookeeper.common; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLException; import javax.net.ssl.X509ExtendedTrustManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * A custom TrustManager that supports hostname verification via org.apache.http.conn.ssl.DefaultHostnameVerifier. * * We attempt to perform verification using just the IP address first and if that fails will attempt to perform a * reverse DNS lookup and verify using the hostname. */ public class ZKTrustManager extends X509ExtendedTrustManager { private static final Logger LOG = LoggerFactory.getLogger(ZKTrustManager.class); private X509ExtendedTrustManager x509ExtendedTrustManager; private boolean serverHostnameVerificationEnabled; private boolean clientHostnameVerificationEnabled; private ZKHostnameVerifier hostnameVerifier; /** * Instantiate a new ZKTrustManager. * * @param x509ExtendedTrustManager The trustmanager to use for checkClientTrusted/checkServerTrusted logic * @param serverHostnameVerificationEnabled If true, this TrustManager should verify hostnames of servers that this * instance connects to. * @param clientHostnameVerificationEnabled If true, the hostname of a client connecting to this machine will be * verified. */ ZKTrustManager( X509ExtendedTrustManager x509ExtendedTrustManager, boolean serverHostnameVerificationEnabled, boolean clientHostnameVerificationEnabled) { this.x509ExtendedTrustManager = x509ExtendedTrustManager; this.serverHostnameVerificationEnabled = serverHostnameVerificationEnabled; this.clientHostnameVerificationEnabled = clientHostnameVerificationEnabled; hostnameVerifier = new ZKHostnameVerifier(); } @Override public X509Certificate[] getAcceptedIssuers() { return x509ExtendedTrustManager.getAcceptedIssuers(); } @Override public void checkClientTrusted( X509Certificate[] chain, String authType, Socket socket) throws CertificateException { x509ExtendedTrustManager.checkClientTrusted(chain, authType, socket); if (clientHostnameVerificationEnabled) { performHostVerification(socket.getInetAddress(), chain[0]); } } @Override public void checkServerTrusted( X509Certificate[] chain, String authType, Socket socket) throws CertificateException { x509ExtendedTrustManager.checkServerTrusted(chain, authType, socket); if (serverHostnameVerificationEnabled) { performHostVerification(socket.getInetAddress(), chain[0]); } } @Override public void checkClientTrusted( X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException { x509ExtendedTrustManager.checkClientTrusted(chain, authType, engine); if (clientHostnameVerificationEnabled) { try { performHostVerification(InetAddress.getByName(engine.getPeerHost()), chain[0]); } catch (UnknownHostException e) { throw new CertificateException("Failed to verify host", e); } } } @Override public void checkServerTrusted( X509Certificate[] chain, String authType, SSLEngine engine ) throws CertificateException { x509ExtendedTrustManager.checkServerTrusted(chain, authType, engine); if (serverHostnameVerificationEnabled) { try { performHostVerification(InetAddress.getByName(engine.getPeerHost()), chain[0]); } catch (UnknownHostException e) { throw new CertificateException("Failed to verify host", e); } } } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { x509ExtendedTrustManager.checkClientTrusted(chain, authType); } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { x509ExtendedTrustManager.checkServerTrusted(chain, authType); } /** * Compares peer's hostname with the one stored in the provided client certificate. Performs verification * with the help of provided HostnameVerifier. * * @param inetAddress Peer's inet address. * @param certificate Peer's certificate * @throws CertificateException Thrown if the provided certificate doesn't match the peer hostname. */ private void performHostVerification( InetAddress inetAddress, X509Certificate certificate ) throws CertificateException { String hostAddress = ""; String hostName = ""; try { hostAddress = inetAddress.getHostAddress(); hostnameVerifier.verify(hostAddress, certificate); } catch (SSLException addressVerificationException) { try { LOG.debug( "Failed to verify host address: {} attempting to verify host name with reverse dns lookup", hostAddress, addressVerificationException); hostName = inetAddress.getHostName(); hostnameVerifier.verify(hostName, certificate); } catch (SSLException hostnameVerificationException) { LOG.error("Failed to verify host address: {}", hostAddress, addressVerificationException); LOG.error("Failed to verify hostname: {}", hostName, hostnameVerificationException); throw new CertificateException("Failed to verify both host address and host name", hostnameVerificationException); } } } }
⏎ org/apache/zookeeper/common/ZKTrustManager.java
Or download all of them as a single archive file:
File name: zookeeper-server-3.8.0-fyi.zip File size: 885581 bytes Release date: 2022-02-25 Download
⇒ Apache ZooKeeper Jute Source Code
⇐ Download and Install Apache ZooKeeper Source Package
2022-11-16, 13801👍, 0💬
Popular Posts:
What Is ojdbc8.jar for Oracle 12c R2? ojdbc8.jar for Oracle 12c R2 is the JAR files of ojdbc.jar, JD...
JDK 11 jdk.internal.vm.compiler .jmodis the JMOD file for JDK 11 Internal VM Compiler module. JDK 11...
What Is HttpComponents httpclient-4.2.2.jar? HttpComponents httpclient-4.2.2.jar is the JAR file for...
JDK 8 tools.jar is the JAR file for JDK 8 tools. It contains Java classes to support different JDK t...
How to download and install Apache XMLBeans-2.6.0.zip? If you want to try the XMLBeans Java library,...