public boolean authenticate(LdapNetworkConnection connection, String principal, String credentials) throws LdapException { checkArgument(!isNullOrEmpty(principal), "Binding with empty principal is forbidden."); checkArgument(!isNullOrEmpty(credentials), "Binding with empty credentials is forbidden."); final BindRequestImpl bindRequest = new BindRequestImpl(); bindRequest.setName(principal); bindRequest.setCredentials(credentials); LOG.trace("Re-binding with DN {} using password", principal); final BindResponse bind = connection.bind(bindRequest); if (!bind.getLdapResult().getResultCode().equals(ResultCodeEnum.SUCCESS)) { LOG.trace("Re-binding DN {} failed", principal); throw new RuntimeException(bind.toString()); } LOG.trace("Binding DN {} did not throw, connection authenticated: {}", principal, connection.isAuthenticated()); return connection.isAuthenticated(); } }
/** * {@inheritDoc} */ @Override public boolean isTrue() { return ldapResult.getResultCode() == ResultCodeEnum.COMPARE_TRUE; }
/** * {@inheritDoc} */ @Override public ResultCodeEnum getResultCode() { return decoratedLdapResult.getResultCode(); }
/** * {@inheritDoc} */ @Override public boolean isTrue() { return ldapResult.getResultCode() == ResultCodeEnum.COMPARE_TRUE; }
/** * {@inheritDoc} */ @Override public ResultCodeEnum getResultCode() { return decoratedLdapResult.getResultCode(); }
/** * {@inheritDoc} */ @Override public boolean isTrue() { return ldapResult.getResultCode() == ResultCodeEnum.COMPARE_TRUE; }
/** * Get the result code * * @return Returns the resultCode. */ @Override public ResultCodeEnum getResultCode() { return result.getResultCode(); }
/** * {@inheritDoc} */ @Override public ResultCodeEnum getResultCode() { return decoratedLdapResult.getResultCode(); }
/** * {@inheritDoc} */ @Override public <T extends ResultResponse> T responseOrException( T response ) { if ( ResultCodeEnum.SUCCESS != response.getLdapResult().getResultCode() ) { throw new LdapRequestUnsuccessfulException( response ); } return response; }
/** * {@inheritDoc} */ @Override public <T extends ResultResponse> T responseOrException( T response ) { if ( ResultCodeEnum.SUCCESS != response.getLdapResult().getResultCode() ) { throw new LdapRequestUnsuccessfulException( response ); } return response; }
/** * {@inheritDoc} */ @Override public <T extends ResultResponse> T responseOrException( T response ) { if ( ResultCodeEnum.SUCCESS != response.getLdapResult().getResultCode() ) { throw new LdapRequestUnsuccessfulException( response ); } return response; }
public boolean authenticate(LdapNetworkConnection connection, String principal, String credentials) throws LdapException { checkArgument(!isNullOrEmpty(principal), "Binding with empty principal is forbidden."); checkArgument(!isNullOrEmpty(credentials), "Binding with empty credentials is forbidden."); final BindRequestImpl bindRequest = new BindRequestImpl(); bindRequest.setName(principal); bindRequest.setCredentials(credentials); LOG.trace("Re-binding with DN {} using password", principal); final BindResponse bind = connection.bind(bindRequest); if (!bind.getLdapResult().getResultCode().equals(ResultCodeEnum.SUCCESS)) { LOG.trace("Re-binding DN {} failed", principal); throw new RuntimeException(bind.toString()); } LOG.trace("Binding DN {} did not throw, connection authenticated: {}", principal, connection.isAuthenticated()); return connection.isAuthenticated(); } }
private ResultCodeEnum handleSearchResultDone( SearchResultDone searchDone ) { CONSUMER_LOG.debug( "///////////////// handleSearchDone //////////////////" ); SyncDoneValue ctrl = ( SyncDoneValue ) searchDone.getControls().get( SyncDoneValue.OID ); if ( ( ctrl != null ) && ( ctrl.getCookie() != null ) ) { syncCookie = ctrl.getCookie(); CONSUMER_LOG.debug( "assigning cookie from sync done value control: " + Strings.utf8ToString( syncCookie ) ); storeCookie(); } CONSUMER_LOG.debug( "//////////////// END handleSearchDone//////////////////////" ); reload = false; return searchDone.getLdapResult().getResultCode(); }
/** * Determines if the supplied response should result in an operation retry. * * @param request that produced the exception * @param resultResponse provider response * * @throws LdapException wrapping the ldap exception */ protected void throwOperationException(final Request request, final ResultResponse resultResponse) throws LdapException { final LdapResult ldapResult = resultResponse.getLdapResult(); final Referral ref = ldapResult.getReferral(); ProviderUtils.throwOperationException( config.getOperationExceptionResultCodes(), String.format("Ldap returned result code: %s", ldapResult.getResultCode()), ldapResult.getResultCode().getResultCode(), ldapResult.getMatchedDn() != null ? ldapResult.getMatchedDn().getName() : null, processResponseControls(config.getControlProcessor(), request.getControls(), resultResponse), ref != null ? ref.getLdapUrls().toArray(new String[ref.getReferralLength()]) : null, false); }
/** * {@inheritDoc} */ @Override public final PasswordWarning process( PasswordPolicyOperation operation ) throws PasswordException { try { ResultResponse response = operation.process(); PasswordPolicy passwordPolicy = getPasswordPolicy( response ); ResultCodeEnum resultCode = response.getLdapResult().getResultCode(); if ( resultCode == ResultCodeEnum.SUCCESS ) { return success( passwordPolicy ); } else { throw fail( response, passwordPolicy, resultCode ); } } catch ( LdapException e ) { throw new PasswordException().setLdapException( e ); } }
/** * {@inheritDoc} */ @Override public final PasswordWarning process( PasswordPolicyOperation operation ) throws PasswordException { try { ResultResponse response = operation.process(); PasswordPolicy passwordPolicy = getPasswordPolicy( response ); ResultCodeEnum resultCode = response.getLdapResult().getResultCode(); if ( resultCode == ResultCodeEnum.SUCCESS ) { return success( passwordPolicy ); } else { throw fail( response, passwordPolicy, resultCode ); } } catch ( LdapException e ) { throw new PasswordException().setLdapException( e ); } }
/** * Creates an operation response with the supplied response data. * * @param <T> type of response * @param request containing controls * @param result of the operation * @param resultResponse provider response * * @return operation response */ protected <T> Response<T> createResponse(final Request request, final T result, final ResultResponse resultResponse) { final LdapResult ldapResult = resultResponse.getLdapResult(); final Referral ref = ldapResult.getReferral(); return new Response<>( result, ResultCode.valueOf(ldapResult.getResultCode().getValue()), ldapResult.getDiagnosticMessage(), ldapResult.getMatchedDn() != null ? ldapResult.getMatchedDn().getName() : null, processResponseControls(config.getControlProcessor(), request.getControls(), resultResponse), ref != null ? ref.getLdapUrls().toArray(new String[ref.getReferralLength()]) : null, resultResponse.getMessageId()); }
/** * {@inheritDoc} */ @Override public StartTlsResponseDecorator decorate( ExtendedResponse decoratedResponse ) { if ( decoratedResponse instanceof StartTlsResponseDecorator ) { return ( StartTlsResponseDecorator ) decoratedResponse; } if ( decoratedResponse instanceof StartTlsResponse ) { return new StartTlsResponseDecorator( codec, ( StartTlsResponse ) decoratedResponse ); } // It's an opaque extended operation @SuppressWarnings("unchecked") ExtendedResponseDecorator<ExtendedResponse> response = ( ExtendedResponseDecorator<ExtendedResponse> ) decoratedResponse; // Decode the response, as it's an opaque operation StartTlsResponse startTlsResponse = new StartTlsResponseImpl( response.getMessageId() ); startTlsResponse.getLdapResult().setResultCode( response.getLdapResult().getResultCode() ); startTlsResponse.getLdapResult().setDiagnosticMessage( response.getLdapResult().getDiagnosticMessage() ); return new StartTlsResponseDecorator( codec, new StartTlsResponseImpl() ); } }
/** * {@inheritDoc} */ @Override public StartTlsResponseDecorator decorate( ExtendedResponse decoratedResponse ) { if ( decoratedResponse instanceof StartTlsResponseDecorator ) { return ( StartTlsResponseDecorator ) decoratedResponse; } if ( decoratedResponse instanceof StartTlsResponse ) { return new StartTlsResponseDecorator( codec, ( StartTlsResponse ) decoratedResponse ); } // It's an opaque extended operation @SuppressWarnings("unchecked") ExtendedResponseDecorator<ExtendedResponse> response = ( ExtendedResponseDecorator<ExtendedResponse> ) decoratedResponse; // Decode the response, as it's an opaque operation StartTlsResponse startTlsResponse = new StartTlsResponseImpl( response.getMessageId() ); startTlsResponse.getLdapResult().setResultCode( response.getLdapResult().getResultCode() ); startTlsResponse.getLdapResult().setDiagnosticMessage( response.getLdapResult().getDiagnosticMessage() ); return new StartTlsResponseDecorator( codec, new StartTlsResponseImpl() ); } }
/** * {@inheritDoc} */ @Override public StartTlsResponseDecorator decorate( ExtendedResponse decoratedResponse ) { if ( decoratedResponse instanceof StartTlsResponseDecorator ) { return ( StartTlsResponseDecorator ) decoratedResponse; } if ( decoratedResponse instanceof StartTlsResponse ) { return new StartTlsResponseDecorator( codec, ( StartTlsResponse ) decoratedResponse ); } // It's an opaque extended operation @SuppressWarnings("unchecked") ExtendedResponseDecorator<ExtendedResponse> response = ( ExtendedResponseDecorator<ExtendedResponse> ) decoratedResponse; // Decode the response, as it's an opaque operation StartTlsResponse startTlsResponse = new StartTlsResponseImpl( response.getMessageId() ); startTlsResponse.getLdapResult().setResultCode( response.getLdapResult().getResultCode() ); startTlsResponse.getLdapResult().setDiagnosticMessage( response.getLdapResult().getDiagnosticMessage() ); return new StartTlsResponseDecorator( codec, new StartTlsResponseImpl() ); } }