public SaslClient createSaslClient(final String[] mechanisms, final String authorizationId, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); iterator.remove(); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslServer(mechanism, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); } }
/** * Populate the given channel binding callback with any channel binding data that might be present on this * connection. If no channel binding seems to be supported, then the callback will be left unpopulated. * * @param callback the binding callback to populate (must not be {@code null}) */ public void handleChannelBindingCallback(final ChannelBindingCallback callback) { Assert.checkNotNullParam("callback", callback); byte[] bindingData = getChannelBinding("tls-unique"); if (bindingData != null) { callback.setBindingType("tls-unique"); callback.setBindingData(bindingData); } else { bindingData = getChannelBinding(TLS_SERVER_ENDPOINT); if (bindingData != null) { callback.setBindingType(TLS_SERVER_ENDPOINT); callback.setBindingData(bindingData); } } }
/** * Convenience method to handle a channel binding callback. * * @param channelBindingCallback the callback (must not be {@code null}) * @param serverCerts the server certificate chain * @throws UnsupportedCallbackException if the server certificates are not present or unsupported and the callback is not optional */ public static void handleChannelBindingCallback(ChannelBindingCallback channelBindingCallback, X509Certificate[] serverCerts) throws UnsupportedCallbackException { if (serverCerts != null && serverCerts.length > 0) { // tls-server-end-point try { final byte[] bindingData = getChannelBindingData(serverCerts[0]); if (bindingData != null) { channelBindingCallback.setBindingData(bindingData); channelBindingCallback.setBindingType(TLS_SERVER_ENDPOINT); return; } } catch (CertificateEncodingException | NoSuchAlgorithmException e) { // fail silently } } CallbackUtil.unsupported(channelBindingCallback); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslServer(mechanism, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); } }
public SaslClient createSaslClient(final String[] mechanisms, final String authorizationId, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); iterator.remove(); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); }
public SaslClient createSaslClient(final String[] mechanisms, final String authorizationId, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); iterator.remove(); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); }
public SaslClient createSaslClient(final String[] mechanisms, final String authorizationId, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); iterator.remove(); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslServer(mechanism, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); } }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return delegate.createSaslServer(mechanism, protocol, serverName, props, callbacks -> { ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof ChannelBindingCallback) { ((ChannelBindingCallback) callback).setBindingType(bindingType); ((ChannelBindingCallback) callback).setBindingData(bindingData); } } if (!list.isEmpty()) { cbh.handle(list.toArray(new Callback[list.size()])); } }); } }
/** * Populate the given channel binding callback with any channel binding data that might be present on this * connection. If no channel binding seems to be supported, then the callback will be left unpopulated. * * @param callback the binding callback to populate (must not be {@code null}) */ public void handleChannelBindingCallback(final ChannelBindingCallback callback) { Assert.checkNotNullParam("callback", callback); byte[] bindingData = getChannelBinding("tls-unique"); if (bindingData != null) { callback.setBindingType("tls-unique"); callback.setBindingData(bindingData); } else { bindingData = getChannelBinding(TLS_SERVER_ENDPOINT); if (bindingData != null) { callback.setBindingType(TLS_SERVER_ENDPOINT); callback.setBindingData(bindingData); } } }
/** * Populate the given channel binding callback with any channel binding data that might be present on this * connection. If no channel binding seems to be supported, then the callback will be left unpopulated. * * @param callback the binding callback to populate (must not be {@code null}) */ public void handleChannelBindingCallback(final ChannelBindingCallback callback) { Assert.checkNotNullParam("callback", callback); byte[] bindingData = getChannelBinding("tls-unique"); if (bindingData != null) { callback.setBindingType("tls-unique"); callback.setBindingData(bindingData); } else { bindingData = getChannelBinding(TLS_SERVER_ENDPOINT); if (bindingData != null) { callback.setBindingType(TLS_SERVER_ENDPOINT); callback.setBindingData(bindingData); } } }
/** * Populate the given channel binding callback with any channel binding data that might be present on this * connection. If no channel binding seems to be supported, then the callback will be left unpopulated. * * @param callback the binding callback to populate (must not be {@code null}) */ public void handleChannelBindingCallback(final ChannelBindingCallback callback) { Assert.checkNotNullParam("callback", callback); byte[] bindingData = getChannelBinding("tls-unique"); if (bindingData != null) { callback.setBindingType("tls-unique"); callback.setBindingData(bindingData); } else { bindingData = getChannelBinding(TLS_SERVER_ENDPOINT); if (bindingData != null) { callback.setBindingType(TLS_SERVER_ENDPOINT); callback.setBindingData(bindingData); } } }
/** * Convenience method to handle a channel binding callback. * * @param channelBindingCallback the callback (must not be {@code null}) * @param serverCerts the server certificate chain * @throws UnsupportedCallbackException if the server certificates are not present or unsupported and the callback is not optional */ public static void handleChannelBindingCallback(ChannelBindingCallback channelBindingCallback, X509Certificate[] serverCerts) throws UnsupportedCallbackException { if (serverCerts != null && serverCerts.length > 0) { // tls-server-end-point try { final byte[] bindingData = getChannelBindingData(serverCerts[0]); if (bindingData != null) { channelBindingCallback.setBindingData(bindingData); channelBindingCallback.setBindingType(TLS_SERVER_ENDPOINT); return; } } catch (CertificateEncodingException | NoSuchAlgorithmException e) { // fail silently } } CallbackUtil.unsupported(channelBindingCallback); }
/** * Convenience method to handle a channel binding callback. * * @param channelBindingCallback the callback (must not be {@code null}) * @param serverCerts the server certificate chain * @throws UnsupportedCallbackException if the server certificates are not present or unsupported and the callback is not optional */ public static void handleChannelBindingCallback(ChannelBindingCallback channelBindingCallback, X509Certificate[] serverCerts) throws UnsupportedCallbackException { if (serverCerts != null && serverCerts.length > 0) { // tls-server-end-point try { final byte[] bindingData = getChannelBindingData(serverCerts[0]); if (bindingData != null) { channelBindingCallback.setBindingData(bindingData); channelBindingCallback.setBindingType(TLS_SERVER_ENDPOINT); return; } } catch (CertificateEncodingException | NoSuchAlgorithmException e) { // fail silently } } CallbackUtil.unsupported(channelBindingCallback); }
/** * Convenience method to handle a channel binding callback. * * @param channelBindingCallback the callback (must not be {@code null}) * @param serverCerts the server certificate chain * @throws UnsupportedCallbackException if the server certificates are not present or unsupported and the callback is not optional */ public static void handleChannelBindingCallback(ChannelBindingCallback channelBindingCallback, X509Certificate[] serverCerts) throws UnsupportedCallbackException { if (serverCerts != null && serverCerts.length > 0) { // tls-server-end-point try { final byte[] bindingData = getChannelBindingData(serverCerts[0]); if (bindingData != null) { channelBindingCallback.setBindingData(bindingData); channelBindingCallback.setBindingType(TLS_SERVER_ENDPOINT); return; } } catch (CertificateEncodingException | NoSuchAlgorithmException e) { // fail silently } } CallbackUtil.unsupported(channelBindingCallback); }