@Override public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { for (SaslServerFactory factory : factories) { if (factory != null) { final SaslServer saslServer = factory.createSaslServer(mechanism, protocol, serverName, props, cbh); if (saslServer != null) { return saslServer; } } } return null; }
@Override public SaslServer run() throws SaslException { return saslFactory.createSaslServer(mechanism, protocol, serverId, saslProperties, callback); } });
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, cbh); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final SaslServer saslServer = delegate.createSaslServer(mechanism, protocol, serverName, props, cbh); return saslServer == null ? null : new AbstractDelegatingSaslServer(saslServer) { public void dispose() throws SaslException { try { super.dispose(); } finally { try { cbh.handle(new Callback[] { SecurityLayerDisposedCallback.getInstance() }); } catch (Throwable ignored) { } } } }; } }
public SaslServerContext(final SaslServerFactory saslServerFactory, final String mech, final String serverName, final CallbackHandler callback_handler, final Map<String, String> props, final Subject subject) throws SaslException { this.subject = subject; if (this.subject != null) { try { server = Subject.doAs(this.subject, (PrivilegedExceptionAction<SaslServer>)() -> saslServerFactory.createSaslServer(mech, SASL.SASL_PROTOCOL_NAME, serverName, props, callback_handler)); } catch (PrivilegedActionException e) { throw (SaslException)e.getCause(); // The createSaslServer will only throw this type of exception } } else { server = saslServerFactory.createSaslServer(mech, SASL.SASL_PROTOCOL_NAME, serverName, props, callback_handler); } }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { return predicate.test(mechanism) ? delegate.createSaslServer(mechanism, protocol, serverName, props, cbh) : null; }
@Override public SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException { SaslServer saslServer = null; List<SaslServerFactory> factories = factoryCache.get(mechanism); if (factories != null) { for (SaslServerFactory factory : factories) { saslServer = factory.createSaslServer( mechanism, protocol, serverName, props, cbh); if (saslServer != null) { break; } } } return saslServer; }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final SaslServer delegateSaslServer = delegate.createSaslServer(mechanism, protocol, serverName, props, cbh); return delegateSaslServer == null ? null : new AbstractDelegatingSaslServer(delegateSaslServer) { private final AtomicBoolean complete = new AtomicBoolean();
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, new SocketAddressQueryCallbackHandler(cbh, localAddress, peerAddress)); } }
@Override public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final SaslServer delegateSaslServer = delegate.createSaslServer(mechanism, protocol, serverName, props, cbh); return delegateSaslServer == null ? null : new AbstractDelegatingSaslServer(delegateSaslServer) { private final AtomicBoolean complete = new AtomicBoolean();
@Override public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final long timeout; if (props.containsKey(WildFlySasl.AUTHENTICATION_TIMEOUT)) { timeout = Long.parseLong((String) props.get(WildFlySasl.AUTHENTICATION_TIMEOUT)); } else { timeout = DEFAULT_TIMEOUT; } final SaslServer delegateSaslServer = delegate.createSaslServer(mechanism, protocol, serverName, props, cbh); return (delegateSaslServer == null) ? null : new DelegatingTimeoutSaslServer(delegateSaslServer, scheduledExecutorService, timeout); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { synchronized (loader) { final Iterator<SaslServerFactory> iterator = loader.iterator(); SaslServerFactory serverFactory; SaslServer saslServer; for (;;) try { // Service loader iterators can blow up in various ways; that's why the loop is structured this way if (! iterator.hasNext()) { break; } serverFactory = iterator.next(); // let SaslException bubble up saslServer = serverFactory.createSaslServer(mechanism, protocol, serverName, props, cbh); if (saslServer != null) { return saslServer; } } catch (ServiceConfigurationError ignored) {} return null; } }
@Override public SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String, ?> props, CallbackHandler cbh) throws SaslException { return delegate.createSaslServer(mechanism, protocol, serverName, combine(props, properties), cbh); }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final SaslServer saslServer; try { saslServer = doPrivileged((PrivilegedExceptionAction<SaslServer>) () -> delegate.createSaslServer(mechanism, protocol, serverName, props, cbh)); } catch (PrivilegedActionException pae) { try { throw pae.getCause(); } catch (SaslException | RuntimeException | Error e) { throw e; } catch (Throwable throwable) { throw new UndeclaredThrowableException(throwable); } } return saslServer == null ? null : new PrivilegedSaslServer(saslServer, context); } }
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { final String realmList = (String) props.get(WildFlySasl.REALM_LIST); if (realmList == null) { // The legacy REALM_LIST property wasn't specified return delegate.createSaslServer(mechanism, protocol, serverName, props, cbh); } return delegate.createSaslServer(mechanism, protocol, serverName, props, callbacks -> { final ArrayList<Callback> list = new ArrayList<>(Arrays.asList(callbacks)); final Iterator<Callback> iterator = list.iterator(); while (iterator.hasNext()) { Callback callback = iterator.next(); if (callback instanceof AvailableRealmsCallback) { String[] realms = realmListPropertyToArray(realmList, escapeCharacter, delims); ((AvailableRealmsCallback) callback).setRealmNames(realms); 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 ServerCredentialCallback) { final ServerCredentialCallback credentialCallback = (ServerCredentialCallback) callback; if (credentialCallback.isCredentialSupported(credential)) { credentialCallback.setCredential(credential); 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 TrustedAuthoritiesCallback) { final X509TrustManager trustManager = getTrustManager(); ((TrustedAuthoritiesCallback) callback).setTrustedAuthorities(getTrustedAuthorities(trustManager.getAcceptedIssuers())); iterator.remove(); } else if (callback instanceof EvidenceVerifyCallback) { final EvidenceVerifyCallback evidenceVerifyCallback = (EvidenceVerifyCallback) callback; final X509PeerCertificateChainEvidence peerCertificateChainEvidence = evidenceVerifyCallback.getEvidence(X509PeerCertificateChainEvidence.class); if (peerCertificateChainEvidence != null) { final X509TrustManager trustManager = getTrustManager(); try { trustManager.checkClientTrusted(peerCertificateChainEvidence.getPeerCertificateChain(), peerCertificateChainEvidence.getAlgorithm()); evidenceVerifyCallback.setVerified(true); } catch (CertificateException e) { } 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();
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName, final Map<String, ?> props, final CallbackHandler cbh) throws SaslException { String[] realms = null; final AvailableRealmsCallback availableRealmsCallback = new AvailableRealmsCallback(); try { cbh.handle(new Callback[] { availableRealmsCallback }); realms = availableRealmsCallback.getRealmNames(); } catch (UnsupportedCallbackException ignored) { } catch (SaslException e) { throw e; } catch (IOException e) { throw sasl.mechCallbackHandlerFailedForUnknownReason(e).toSaslException(); } if (realms == null) { realms = new String[] { serverName }; } final String realmList = arrayToRealmListProperty(realms, escapeCharacter, delims); final Map<String, Object> newProps = new HashMap<String, Object>(props) { public Object get(Object key) { Object value = super.get(key); if (key.equals(WildFlySasl.REALM_LIST) && (value == null)) { value = realmList; put(WildFlySasl.REALM_LIST, value); } return value; } }; return delegate.createSaslServer(mechanism, protocol, serverName, newProps, cbh); }