javax.naming.ldap.ExtendedResponse Java Examples

The following examples show how to use javax.naming.ldap.ExtendedResponse. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AbstractProvider.java    From ldapchai with GNU Lesser General Public License v2.1 5 votes vote down vote up
public final ExtendedResponse extendedOperation( final ExtendedRequest request )
{
    if ( request == null )
    {
        throw new NullPointerException( "request must not be null" );
    }

    return null;
}
 
Example #2
Source File: JNDIProviderImpl.java    From ldapchai with GNU Lesser General Public License v2.1 5 votes vote down vote up
@LdapOperation
@ModifyOperation
public final ExtendedResponse extendedOperation( final ExtendedRequest request )
        throws ChaiUnavailableException, ChaiOperationException

{
    activityPreCheck();

    getInputValidator().extendedOperation( request );

    preCheckExtendedOperation( request );

    final LdapContext ldapConnection = getLdapConnection();
    try
    {
        return ldapConnection.extendedOperation( request );
    }
    catch ( NamingException e )
    {
        cacheExtendedOperationException( request, e );

        // guaranteedb to throw ChaiException
        convertNamingException( e );
    }

    return null;
}
 
Example #3
Source File: InetOrgPersonImpl.java    From ldapchai with GNU Lesser General Public License v2.1 5 votes vote down vote up
public boolean testPasswordPolicy( final String password )
        throws ChaiUnavailableException, ChaiPasswordPolicyException
{
    final boolean useNmasSetting = this.getChaiProvider().getChaiConfiguration().getBooleanSetting( ChaiSetting.EDIRECTORY_ENABLE_NMAS );
    if ( !useNmasSetting )
    {
        return true;
    }

    final PwdPolicyCheckRequest request = new PwdPolicyCheckRequest();
    request.setData( password );
    request.setObjectDN( this.getEntryDN() );
    final ExtendedResponse response;
    try
    {
        response = getChaiProvider().extendedOperation( request );
    }
    catch ( ChaiOperationException e )
    {
        LOGGER.debug( "unexpected error while checking [nmas] password policy: " + e.getMessage() );
        return true;
    }
    if ( response != null )
    {
        final PwdPolicyCheckResponse setResponse = ( PwdPolicyCheckResponse ) response;
        final int responseCode = setResponse.getNmasRetCode();
        if ( responseCode != 0 )
        {
            LOGGER.debug( "nmas response code returned from server while testing nmas password: " + responseCode );
            final String errorString = "nmas error " + responseCode;
            throw new ChaiPasswordPolicyException( errorString, ChaiErrors.getErrorForMessage( errorString ) );
        }
    }
    return true;
}
 
Example #4
Source File: InetOrgPersonImpl.java    From ldapchai with GNU Lesser General Public License v2.1 5 votes vote down vote up
public final String readPassword()
        throws ChaiUnavailableException, ChaiOperationException
{
    final boolean useNmasSetting = this.getChaiProvider().getChaiConfiguration().getBooleanSetting( ChaiSetting.EDIRECTORY_ENABLE_NMAS );
    if ( !useNmasSetting )
    {
        throw new UnsupportedOperationException( "readPassword() is not supported when ChaiSetting.EDIRECTORY_ENABLE_NMAS is false" );
    }

    final GetPwdRequest request = new GetPwdRequest( "", this.getEntryDN() );
    final ExtendedResponse response;
    response = getChaiProvider().extendedOperation( request );
    if ( response != null )
    {
        final GetPwdResponse getResponse = ( GetPwdResponse ) response;
        final int responseCode = getResponse.getNmasRetCode();
        switch ( responseCode )
        {
            // Success
            case 0:
                return getResponse.getPwdStr();

            // NMAS_E_ENTRY_ATTRIBUTE_NOT_FOUND
            case ( -16049 ):
                LOGGER.debug( "readPassword() reports: NMAS_E_ENTRY_ATTRIBUTE_NOT_FOUND " + responseCode );
                throw new ChaiOperationException( "object has no password attribute: error " + responseCode, ChaiError.NO_SUCH_ATTRIBUTE );

            default:
                LOGGER.debug( "error testing nmas password: " + responseCode );
                throw new ChaiOperationException( "error reading nmas password: error " + responseCode, ChaiError.UNKNOWN );
        }
    }

    LOGGER.debug( "unknown error retrieving password (null response)" );
    throw new ChaiOperationException( "unknown error retrieving password (null response)", ChaiError.UNKNOWN );
}
 
Example #5
Source File: RetryingLdapContext.java    From james-project with Apache License 2.0 5 votes vote down vote up
@Override
public ExtendedResponse extendedOperation(final ExtendedRequest request) throws NamingException {
    return (ExtendedResponse) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
            @Override
            public Object operation() throws NamingException {
                return ((LdapContext) getDelegate()).extendedOperation(request);
            }
        }.perform();
}
 
Example #6
Source File: DelegatingLdapContext.java    From spring-ldap with Apache License 2.0 4 votes vote down vote up
/**
 * @see LdapContext#extendedOperation(ExtendedRequest)
 */
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
    this.assertOpen();
    return this.getDelegateLdapContext().extendedOperation(request);
}
 
Example #7
Source File: LdapContextWrapper.java    From micro-integrator with Apache License 2.0 4 votes vote down vote up
@Override
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {

    return ldapContext.extendedOperation(request);
}
 
Example #8
Source File: DelegatingLdapContext.java    From spring-ldap with Apache License 2.0 4 votes vote down vote up
/**
 * @see javax.naming.ldap.LdapContext#extendedOperation(javax.naming.ldap.ExtendedRequest)
 */
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
    this.assertOpen();
    return this.getDelegateLdapContext().extendedOperation(request);
}
 
Example #9
Source File: PasswordModifyRequest.java    From keycloak with Apache License 2.0 4 votes vote down vote up
@Override
public ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) {
  return null;
}
 
Example #10
Source File: InitialLdapContext.java    From entando-components with GNU Lesser General Public License v3.0 4 votes vote down vote up
protected void setExtendedResponse(ExtendedResponse extendedResponse) {
	this._extendedResponse = extendedResponse;
}
 
Example #11
Source File: InitialLdapContext.java    From entando-components with GNU Lesser General Public License v3.0 4 votes vote down vote up
protected ExtendedResponse getExtendedResponse() {
	return _extendedResponse;
}
 
Example #12
Source File: InitialLdapContext.java    From entando-components with GNU Lesser General Public License v3.0 4 votes vote down vote up
@Override
public ExtendedResponse extendedOperation(ExtendedRequest er) throws NamingException {
	ExtendedResponse extResponse = super.extendedOperation(er);
	this.setExtendedResponse(extResponse);
	return extResponse;
}
 
Example #13
Source File: WatchdogWrapper.java    From ldapchai with GNU Lesser General Public License v2.1 4 votes vote down vote up
@Override
public ExtendedResponse extendedOperation( final ExtendedRequest request )
        throws ChaiOperationException, ChaiUnavailableException, IllegalStateException
{
    return providerHolder.execute( chaiProvider -> chaiProvider.extendedOperation( request ) );
}
 
Example #14
Source File: JavaStoredProcUtils.java    From directory-ldap-api with Apache License 2.0 4 votes vote down vote up
/**
 * Invoke a Stored Procedure
 *
 * @param ctx The execution context
 * @param procedureName The procedure to execute
 * @param arguments The procedure's arguments
 * @return The execution resut
 * @throws NamingException If we have had an error whil executing the stored procedure
 */
public static Object callStoredProcedure( LdapContext ctx, String procedureName, Object[] arguments )
    throws NamingException
{
    String language = "Java";

    Object responseObject;
    try
    {
        /**
         * Create a new stored procedure execution request.
         */
        StoredProcedureRequestImpl req = new StoredProcedureRequestImpl( 0, procedureName, language );

        /**
         * For each argument UTF-8-encode the type name
         * and Java-serialize the value
         * and add them to the request as a parameter object.
         */
        for ( int i = 0; i < arguments.length; i++ )
        {
            byte[] type;
            byte[] value;
            type = arguments[i].getClass().getName().getBytes( StandardCharsets.UTF_8 );
            value = SerializationUtils.serialize( ( Serializable ) arguments[i] );
            req.addParameter( type, value );
        }

        /**
         * Call the stored procedure via the extended operation
         * and get back its return value.
         */
        ExtendedRequest jndiReq = LdapApiServiceFactory.getSingleton().toJndi( req );
        ExtendedResponse resp = ctx.extendedOperation( jndiReq );

        /**
         * Restore a Java object from the return value.
         */
        byte[] responseStream = resp.getEncodedValue();
        responseObject = SerializationUtils.deserialize( responseStream );
    }
    catch ( Exception e )
    {
        NamingException ne = new NamingException();
        ne.setRootCause( e );
        throw ne;
    }

    return responseObject;
}
 
Example #15
Source File: DelegatingLdapContext.java    From quarkus with Apache License 2.0 4 votes vote down vote up
@Override
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
    if (!(delegating instanceof LdapContext))
        throw Assert.unsupported();
    return ((LdapContext) delegating).extendedOperation(request);
}
 
Example #16
Source File: CarbonContextDataHolder.java    From micro-integrator with Apache License 2.0 4 votes vote down vote up
public ExtendedResponse extendedOperation(ExtendedRequest extendedRequest)
        throws NamingException {
    return getLdapContext().extendedOperation(extendedRequest);
}
 
Example #17
Source File: OpenLDAPModifyPasswordRequest.java    From ldapchai with GNU Lesser General Public License v2.1 3 votes vote down vote up
/**
 * Creates the extended response.  With OpenLDAP, the extended
 * operation for Password modification doesn't create a
 * response so we just return null here.
 *
 * @param id       the OID of the response
 * @param berValue the BER encoded value of the response
 * @param offset   the offset
 * @param length   the length of the response
 * @return returns null as the modify password operation doesn't
 *     generate a response.
 */
public ExtendedResponse createExtendedResponse(
        final String id,
        final byte[] berValue,
        final int offset,
        final int length )
{
    return null;
}
 
Example #18
Source File: ChaiProvider.java    From ldapchai with GNU Lesser General Public License v2.1 2 votes vote down vote up
/**
 * Performs an extended operation against the server.  The extended operation must be understood by the server.
 *
 * @param request An ExtendedRequest bean that can be
 * @return An ExtendedResponse created in response to the request.
 * @throws ChaiOperationException   If an error is encountered during the operation
 * @throws ChaiUnavailableException If no directory servers are reachable
 * @throws IllegalStateException    If the underlying connection is not in an available state
 * @see ExtendedRequest
 * @see ExtendedResponse
 */
@ChaiProvider.LdapOperation
@ChaiProvider.ModifyOperation
ExtendedResponse extendedOperation( ExtendedRequest request )
        throws ChaiOperationException, ChaiUnavailableException, IllegalStateException;