/** Default constructor. */ public JndiProviderConfig() { setOperationExceptionResultCodes(ResultCode.PROTOCOL_ERROR, ResultCode.SERVER_DOWN); searchIgnoreResultCodes = new ResultCode[] { ResultCode.TIME_LIMIT_EXCEEDED, ResultCode.SIZE_LIMIT_EXCEEDED, ResultCode.PARTIAL_RESULTS, }; setControlProcessor(new ControlProcessor<>(new JndiControlHandler())); }
final LdapContext ctx = (LdapContext) loopEx.getReferralContext( searchContext.getEnvironment(), config.getControlProcessor().processRequestControls(request.getControls())); search(ctx, request); } catch (LdapReferralException e) {
/** * Retrieves the response controls from the supplied response and processes them with the supplied control processor. * * @param processor control processor * @param requestControls that produced this response * @param response to get controls from * * @return response controls */ public org.ldaptive.control.ResponseControl[] processResponseControls( final ControlProcessor<Control> processor, final RequestControl[] requestControls, final Message response) { return processor.processResponseControls(getResponseControls(response)); }
/** * Converts the supplied provider controls to a response controls. The supplied request controls were used to produce * the response. * * @param responseControls to convert * * @return controls */ public ResponseControl[] processResponseControls(final T[] responseControls) { if (responseControls == null || responseControls.length == 0) { return null; } logger.trace("processing provider response controls: {}", responseControls); final List<ResponseControl> ctls = new ArrayList<>(responseControls.length); for (T c : responseControls) { final ResponseControl ctl = processResponse(c); if (ctl != null) { ctls.add(ctl); } } logger.trace("produced response controls: {}", ctls); return ctls.toArray(new ResponseControl[ctls.size()]); }
/** * Converts the supplied request controls to a provider specific request controls. * * @param requestControls to convert * * @return provider specific controls */ @SuppressWarnings("unchecked") public T[] processRequestControls(final RequestControl[] requestControls) { if (requestControls == null || requestControls.length == 0) { return null; } logger.trace("processing request controls: {}", new Object[] {requestControls}); final List<T> providerCtls = new ArrayList<>(requestControls.length); for (RequestControl c : requestControls) { final T providerCtl = processRequest(c); if (providerCtl != null) { providerCtls.add(providerCtl); } } logger.trace("produced provider request controls: {}", providerCtls); return !providerCtls.isEmpty() ? providerCtls.toArray((T[]) Array.newInstance(controlHandler.getControlType(), providerCtls.size())) : null; }
/** * Converts the supplied provider controls to a response controls. The supplied request controls were used to produce * the response. * * @param responseControls to convert * * @return controls */ public ResponseControl[] processResponseControls(final T[] responseControls) { if (responseControls == null || responseControls.length == 0) { return null; } logger.trace("processing provider response controls: {}", responseControls); final List<ResponseControl> ctls = new ArrayList<>(responseControls.length); for (T c : responseControls) { final ResponseControl ctl = processResponse(c); if (ctl != null) { ctls.add(ctl); } } logger.trace("produced response controls: {}", ctls); return ctls.toArray(new ResponseControl[ctls.size()]); }
/** * Converts the supplied request controls to a provider specific request controls. * * @param requestControls to convert * * @return provider specific controls */ @SuppressWarnings("unchecked") public T[] processRequestControls(final RequestControl[] requestControls) { if (requestControls == null || requestControls.length == 0) { return null; } logger.trace("processing request controls: {}", new Object[] {requestControls}); final List<T> providerCtls = new ArrayList<>(requestControls.length); for (RequestControl c : requestControls) { final T providerCtl = processRequest(c); if (providerCtl != null) { providerCtls.add(providerCtl); } } logger.trace("produced provider request controls: {}", providerCtls); return !providerCtls.isEmpty() ? providerCtls.toArray((T[]) Array.newInstance(controlHandler.getControlType(), providerCtls.size())) : null; }
final LdapContext ctx = (LdapContext) loopEx.getReferralContext( searchContext.getEnvironment(), config.getControlProcessor().processRequestControls(request.getControls())); search(ctx, request); } catch (LdapReferralException e) {
/** Default constructor. */ public JndiProviderConfig() { setOperationExceptionResultCodes(ResultCode.PROTOCOL_ERROR, ResultCode.SERVER_DOWN); searchIgnoreResultCodes = new ResultCode[] { ResultCode.TIME_LIMIT_EXCEEDED, ResultCode.SIZE_LIMIT_EXCEEDED, ResultCode.PARTIAL_RESULTS, }; setControlProcessor(new ControlProcessor<>(new JndiControlHandler())); }
/** * Retrieves the response controls from the supplied context and processes them with the supplied control processor. * Logs a warning if controls cannot be retrieved. * * @param processor control processor * @param requestControls that produced this response * @param ctx to get controls from * * @return response controls */ protected ResponseControl[] processResponseControls( final ControlProcessor<Control> processor, final RequestControl[] requestControls, final LdapContext ctx) { ResponseControl[] ctls = null; if (ctx != null) { try { ctls = processor.processResponseControls(ctx.getResponseControls()); } catch (NamingException e) { final Logger l = LoggerFactory.getLogger(JndiUtils.class); l.warn("Error retrieving response controls.", e); } } return ctls; }
/** * Converts the supplied provider controls to a response controls. The supplied request controls were used to produce * the response. * * @param responseControls to convert * * @return controls */ public ResponseControl[] processResponseControls(final T[] responseControls) { if (responseControls == null || responseControls.length == 0) { return null; } logger.trace("processing provider response controls: {}", responseControls); final List<ResponseControl> ctls = new ArrayList<>(responseControls.length); for (T c : responseControls) { final ResponseControl ctl = processResponse(c); if (ctl != null) { ctls.add(ctl); } } logger.trace("produced response controls: {}", ctls); return ctls.toArray(new ResponseControl[ctls.size()]); }
/** * Converts the supplied request controls to a provider specific request controls. * * @param requestControls to convert * * @return provider specific controls */ @SuppressWarnings("unchecked") public T[] processRequestControls(final RequestControl[] requestControls) { if (requestControls == null || requestControls.length == 0) { return null; } logger.trace("processing request controls: {}", new Object[] {requestControls}); final List<T> providerCtls = new ArrayList<>(requestControls.length); for (RequestControl c : requestControls) { final T providerCtl = processRequest(c); if (providerCtl != null) { providerCtls.add(providerCtl); } } logger.trace("produced provider request controls: {}", providerCtls); return !providerCtls.isEmpty() ? providerCtls.toArray((T[]) Array.newInstance(controlHandler.getControlType(), providerCtls.size())) : null; }
final LdapContext ctx = (LdapContext) loopEx.getReferralContext( searchContext.getEnvironment(), config.getControlProcessor().processRequestControls(request.getControls())); search(ctx, request); } catch (LdapReferralException e) {
/** Default constructor. */ public ApacheLdapProviderConfig() { setOperationExceptionResultCodes(ResultCode.SERVER_DOWN); setControlProcessor(new ControlProcessor<>(new ApacheLdapControlHandler())); }
/** * Retrieves the response controls from the supplied context and processes them with the supplied control processor. * Logs a warning if controls cannot be retrieved. * * @param processor control processor * @param requestControls that produced this response * @param ctx to get controls from * * @return response controls */ protected ResponseControl[] processResponseControls( final ControlProcessor<Control> processor, final RequestControl[] requestControls, final LdapContext ctx) { ResponseControl[] ctls = null; if (ctx != null) { try { ctls = processor.processResponseControls(ctx.getResponseControls()); } catch (NamingException e) { final Logger l = LoggerFactory.getLogger(JndiUtils.class); l.warn("Error retrieving response controls.", e); } } return ctls; }
@Override public void abandon(final int messageId, final RequestControl[] controls) throws LdapException { final AbandonRequestImpl ari = new AbandonRequestImpl(); if (controls != null) { ari.addAllControls(config.getControlProcessor().processRequestControls(controls)); } ari.setAbandoned(messageId); connection.abandon(ari); }
/** Default constructor. */ public JndiProviderConfig() { setOperationExceptionResultCodes(ResultCode.PROTOCOL_ERROR, ResultCode.SERVER_DOWN); searchIgnoreResultCodes = new ResultCode[] { ResultCode.TIME_LIMIT_EXCEEDED, ResultCode.SIZE_LIMIT_EXCEEDED, ResultCode.PARTIAL_RESULTS, }; setControlProcessor(new ControlProcessor<>(new JndiControlHandler())); }
/** * Retrieves the response controls from the supplied context and processes them with the supplied control processor. * Logs a warning if controls cannot be retrieved. * * @param processor control processor * @param requestControls that produced this response * @param ctx to get controls from * * @return response controls */ protected ResponseControl[] processResponseControls( final ControlProcessor<Control> processor, final RequestControl[] requestControls, final LdapContext ctx) { ResponseControl[] ctls = null; if (ctx != null) { try { ctls = processor.processResponseControls(ctx.getResponseControls()); } catch (NamingException e) { final Logger l = LoggerFactory.getLogger(JndiUtils.class); l.warn("Error retrieving response controls.", e); } } return ctls; }
/** * Creates a new ldap context using {@link LdapContext#newInstance(Control[])}. Adds any additional environment * properties found in the supplied request to the context. * * @param request to read properties from * * @return ldap context * * @throws NamingException if a property cannot be added to the context */ protected LdapContext initializeContext(final Request request) throws NamingException { final LdapContext ctx = context.newInstance( config.getControlProcessor().processRequestControls(request.getControls())); // by default set referral behavior to throw, otherwise jndi will send the // ManageDsaIT control ctx.addToEnvironment(REFERRAL, "throw"); return ctx; }
/** * Creates a new ldap context using {@link LdapContext#newInstance(Control[])}. Adds any additional environment * properties found in the supplied request to the context. * * @param request to read properties from * * @return ldap context * * @throws NamingException if a property cannot be added to the context */ protected LdapContext initializeContext(final Request request) throws NamingException { final LdapContext ctx = context.newInstance( config.getControlProcessor().processRequestControls(request.getControls())); // by default set referral behavior to throw, otherwise jndi will send the // ManageDsaIT control ctx.addToEnvironment(REFERRAL, "throw"); return ctx; }