You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/08/12 16:55:51 UTC
svn commit: r984812 [1/2] - in /directory:
apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/
apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers...
Author: elecharny
Date: Thu Aug 12 14:55:50 2010
New Revision: 984812
URL: http://svn.apache.org/viewvc?rev=984812&view=rev
Log:
o Removed the IntermediateResponseCodec class
o renamed some ExtendedRequest/Response methods
Removed:
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/intermediate/
Modified:
directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java
directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java
directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java
directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/ExtendedRequestImpl.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/IntermediateResponseImpl.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CancelRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CertGenerationRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/GracefulShutdownRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/LaunchDiagnosticUiRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/StoredProcedureRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalExtendedRequest.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalIntermediateResponse.java
directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java
directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/codec/intermediate/IntermediateResponseTest.java
directory/shared/branches/shared-codec-merge/ldap/src/test/java/org/apache/directory/shared/ldap/message/ExtendedRequestImplTest.java
Modified: directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java (original)
+++ directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java Thu Aug 12 14:55:50 2010
@@ -50,7 +50,7 @@ class LdapProtocolHandler extends Demuxi
{
/** The logger */
private static final Logger LOG = LoggerFactory.getLogger( LdapProtocolHandler.class );
-
+
/** the {@link LdapServer} this handler is associated with */
private final LdapServer ldapServer;
@@ -87,12 +87,12 @@ class LdapProtocolHandler extends Demuxi
{
// Get the associated LdapSession
LdapSession ldapSession = ldapServer.getLdapSessionManager().removeLdapSession( session );
-
+
// Clean it up !
cleanUpSession( ldapSession );
}
-
+
/**
* Explicitly handles {@link LdapSession} and {@link IoSession} cleanup tasks.
*
@@ -106,16 +106,16 @@ class LdapProtocolHandler extends Demuxi
LOG.warn( "Null LdapSession given to cleanUpSession." );
return;
}
-
+
LOG.debug( "Cleaning the {} session", ldapSession );
-
+
if ( ldapSession != null )
{
// Abandon all the requests
ldapSession.abandonAllOutstandingRequests();
}
-
- if ( ! ldapSession.getIoSession().isClosing() || ldapSession.getIoSession().isConnected() )
+
+ if ( !ldapSession.getIoSession().isClosing() || ldapSession.getIoSession().isConnected() )
{
try
{
@@ -128,7 +128,7 @@ class LdapProtocolHandler extends Demuxi
}
}
-
+
/*
* (non-Javadoc)
* @see org.apache.mina.handler.demux.DemuxingIoHandler#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)
@@ -160,25 +160,26 @@ class LdapProtocolHandler extends Demuxi
if ( message == SslFilter.SESSION_SECURED )
{
InternalExtendedRequest req = new ExtendedRequestImpl( 0 );
- req.setOid( "1.3.6.1.4.1.1466.20037" );
- req.setPayload( "SECURED".getBytes( "ISO-8859-1" ) );
+ req.setID( "1.3.6.1.4.1.1466.20037" );
+ req.setEncodedValue( "SECURED".getBytes( "ISO-8859-1" ) );
message = req;
}
else if ( message == SslFilter.SESSION_UNSECURED )
{
InternalExtendedRequest req = new ExtendedRequestImpl( 0 );
- req.setOid( "1.3.6.1.4.1.1466.20037" );
- req.setPayload( "UNSECURED".getBytes( "ISO-8859-1" ) );
+ req.setID( "1.3.6.1.4.1.1466.20037" );
+ req.setEncodedValue( "UNSECURED".getBytes( "ISO-8859-1" ) );
message = req;
}
- if ( ( ( InternalRequest ) message ).getControls().size() > 0 && message instanceof InternalResultResponseRequest )
+ if ( ( ( InternalRequest ) message ).getControls().size() > 0
+ && message instanceof InternalResultResponseRequest )
{
InternalResultResponseRequest req = ( InternalResultResponseRequest ) message;
-
+
for ( Control control : req.getControls().values() )
{
- if ( control.isCritical() && ! ldapServer.getSupportedControls().contains( control.getOid() ) )
+ if ( control.isCritical() && !ldapServer.getSupportedControls().contains( control.getOid() ) )
{
InternalResultResponse resp = req.getResultResponse();
resp.getLdapResult().setErrorMessage( "Unsupport critical control: " + control.getOid() );
@@ -207,9 +208,9 @@ class LdapProtocolHandler extends Demuxi
{
session.write( rcme.getResponse() );
return;
- }
+ }
}
-
+
LOG.warn( "Unexpected exception forcing session to close: sending disconnect notice to client.", cause );
session.write( NoticeOfDisconnect.PROTOCOLERROR );
Modified: directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java (original)
+++ directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java Thu Aug 12 14:55:50 2010
@@ -38,13 +38,13 @@ public class ExtendedHandler extends Lda
{
public void handle( LdapSession session, InternalExtendedRequest req ) throws Exception
{
- ExtendedOperationHandler handler = getLdapServer().getExtendedOperationHandler( req.getOid() );
+ ExtendedOperationHandler handler = getLdapServer().getExtendedOperationHandler( req.getID() );
if ( handler == null )
{
// As long as no extended operations are implemented, send appropriate
// error back to the client.
- String msg = "Unrecognized extended operation EXTENSION_OID: " + req.getOid();
+ String msg = "Unrecognized extended operation EXTENSION_OID: " + req.getID();
InternalLdapResult result = req.getResultResponse().getLdapResult();
result.setResultCode( ResultCodeEnum.PROTOCOL_ERROR );
result.setErrorMessage( msg );
@@ -61,7 +61,7 @@ public class ExtendedHandler extends Lda
InternalLdapResult result = req.getResultResponse().getLdapResult();
result.setResultCode( ResultCodeEnum.OTHER );
result.setErrorMessage( ResultCodeEnum.OTHER
- + ": Extended operation handler for the specified EXTENSION_OID (" + req.getOid()
+ + ": Extended operation handler for the specified EXTENSION_OID (" + req.getID()
+ ") has failed to process your request:\n" + ExceptionUtils.getStackTrace( e ) );
InternalExtendedResponse resp = ( InternalExtendedResponse ) req.getResultResponse();
resp.setEncodedValue( new byte[0] );
Modified: directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java (original)
+++ directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java Thu Aug 12 14:55:50 2010
@@ -80,8 +80,8 @@ public abstract class LdapRequestHandler
{
this.ldapServer = ldapServer;
}
-
-
+
+
/**
* Checks to see if confidentiality requirements are met. If the
* LdapServer requires confidentiality and the SSLFilter is engaged
@@ -98,18 +98,18 @@ public abstract class LdapRequestHandler
*/
public final boolean isConfidentialityRequirementSatisfied( IoSession session )
{
-
- if ( ! ldapServer.isConfidentialityRequired() )
- {
- return true;
- }
-
+
+ if ( !ldapServer.isConfidentialityRequired() )
+ {
+ return true;
+ }
+
IoFilterChain chain = session.getFilterChain();
return chain.contains( "sslFilter" );
}
-
- public void rejectWithoutConfidentiality( IoSession session, InternalResultResponse resp )
+
+ public void rejectWithoutConfidentiality( IoSession session, InternalResultResponse resp )
{
InternalLdapResult result = resp.getLdapResult();
result.setResultCode( ResultCodeEnum.CONFIDENTIALITY_REQUIRED );
@@ -117,6 +117,7 @@ public abstract class LdapRequestHandler
session.write( resp );
}
+
/**
*{@inheritDoc}
*/
@@ -125,24 +126,23 @@ public abstract class LdapRequestHandler
public final void handleMessage( IoSession session, T message ) throws Exception
{
LdapSession ldapSession = ldapServer.getLdapSessionManager().getLdapSession( session );
-
- if( ldapSession == null )
+
+ if ( ldapSession == null )
{
// in some cases the session is becoming null though the client is sending the UnbindRequest
// before closing
- LOG.info( "ignoring the message {} received from null session", message );
+ LOG.info( "ignoring the message {} received from null session", message );
return;
}
-
+
// First check that the client hasn't issued a previous BindRequest, unless it
// was a SASL BindRequest
if ( ldapSession.isAuthPending() )
{
// Only SASL BinRequest are allowed if we already are handling a
// SASL BindRequest
- if ( !( message instanceof BindRequestImpl ) ||
- ((BindRequestImpl)message).isSimple() ||
- ldapSession.isSimpleAuthPending() )
+ if ( !( message instanceof BindRequestImpl ) || ( ( BindRequestImpl ) message ).isSimple()
+ || ldapSession.isSimpleAuthPending() )
{
LOG.error( I18n.err( I18n.ERR_732 ) );
InternalBindResponse bindResponse = new BindResponseImpl( message.getMessageId() );
@@ -153,35 +153,37 @@ public abstract class LdapRequestHandler
return;
}
}
-
+
// TODO - session you get from LdapServer should have the ldapServer
// member already set no? Should remove these lines where ever they
// may be if that's the case.
ldapSession.setLdapServer( ldapServer );
-
+
// protect against insecure conns when confidentiality is required
- if ( ! isConfidentialityRequirementSatisfied( session ) )
+ if ( !isConfidentialityRequirementSatisfied( session ) )
{
if ( message instanceof InternalExtendedRequest )
{
// Reject all extended operations except StartTls
InternalExtendedRequest req = ( InternalExtendedRequest ) message;
-
- if ( ! req.getOid().equals( StartTlsHandler.EXTENSION_OID ) )
+
+ if ( !req.getID().equals( StartTlsHandler.EXTENSION_OID ) )
{
rejectWithoutConfidentiality( session, req.getResultResponse() );
return;
}
-
+
// Allow StartTls extended operations to go through
}
else if ( message instanceof InternalResultResponseRequest )
{
// Reject all other operations that have a result response
- rejectWithoutConfidentiality( session, ( ( InternalResultResponseRequest ) message ).getResultResponse() );
+ rejectWithoutConfidentiality( session, ( ( InternalResultResponseRequest ) message )
+ .getResultResponse() );
return;
}
- else // Just return from unbind, and abandon immediately
+ else
+ // Just return from unbind, and abandon immediately
{
return;
}
@@ -196,7 +198,7 @@ public abstract class LdapRequestHandler
else
{
CoreSession coreSession = null;
-
+
/*
* All requests except bind automatically presume the authentication
* is anonymous if the session has not been authenticated. Hence a
@@ -208,7 +210,7 @@ public abstract class LdapRequestHandler
handle( ldapSession, message );
return;
}
-
+
coreSession = getLdapServer().getDirectoryService().getSession();
ldapSession.setCoreSession( coreSession );
@@ -216,12 +218,13 @@ public abstract class LdapRequestHandler
{
return;
}
-
+
handle( ldapSession, message );
return;
}
}
-
+
+
/**
* Handle a Ldap message associated with a session
*
@@ -230,8 +233,8 @@ public abstract class LdapRequestHandler
* @throws Exception If there is an error during the processing of this message
*/
public abstract void handle( LdapSession session, T message ) throws Exception;
-
-
+
+
/**
* Handles processing with referrals without ManageDsaIT control.
*/
@@ -251,7 +254,7 @@ public abstract class LdapRequestHandler
{
code = ResultCodeEnum.getBestEstimate( e, req.getType() );
}
-
+
result.setResultCode( code );
/*
@@ -264,10 +267,10 @@ public abstract class LdapRequestHandler
if ( LOG.isDebugEnabled() )
{
LOG.debug( msg, e );
-
+
msg += ":\n" + ExceptionUtils.getStackTrace( e );
}
-
+
result.setErrorMessage( msg );
if ( e instanceof LdapOperationException )
@@ -275,29 +278,26 @@ public abstract class LdapRequestHandler
LdapOperationException ne = ( LdapOperationException ) e;
// Add the matchedDN if necessary
- boolean setMatchedDn =
- code == ResultCodeEnum.NO_SUCH_OBJECT ||
- code == ResultCodeEnum.ALIAS_PROBLEM ||
- code == ResultCodeEnum.INVALID_DN_SYNTAX ||
- code == ResultCodeEnum.ALIAS_DEREFERENCING_PROBLEM;
-
+ boolean setMatchedDn = code == ResultCodeEnum.NO_SUCH_OBJECT || code == ResultCodeEnum.ALIAS_PROBLEM
+ || code == ResultCodeEnum.INVALID_DN_SYNTAX || code == ResultCodeEnum.ALIAS_DEREFERENCING_PROBLEM;
+
if ( ( ne.getResolvedDn() != null ) && setMatchedDn )
{
result.setMatchedDn( ( DN ) ne.getResolvedDn() );
}
-
+
// Add the referrals if necessary
if ( e instanceof LdapReferralException )
{
InternalReferral referrals = new ReferralImpl();
-
+
do
{
- String ref = ((LdapReferralException)e).getReferralInfo();
+ String ref = ( ( LdapReferralException ) e ).getReferralInfo();
referrals.addLdapUrl( ref );
}
- while ( ((LdapReferralException)e).skipReferral() );
-
+ while ( ( ( LdapReferralException ) e ).skipReferral() );
+
result.setReferral( referrals );
}
}
Modified: directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java (original)
+++ directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java Thu Aug 12 14:55:50 2010
@@ -41,6 +41,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.internal.InternalExtendedRequest;
import org.apache.directory.shared.ldap.name.DN;
+
/**
* An extended handler for digital certificate generation
*
@@ -74,26 +75,27 @@ public class CertGenerationRequestHandle
public void handleExtendedOperation( LdapSession session, InternalExtendedRequest req ) throws Exception
{
- ByteBuffer bb = ByteBuffer.wrap( req.getPayload() );
+ ByteBuffer bb = ByteBuffer.wrap( req.getEncodedValue() );
Asn1Decoder decoder = new CertGenerationDecoder();
CertGenerationContainer container = new CertGenerationContainer();
-
+
try
{
decoder.decode( bb, container );
}
- catch( DecoderException e )
+ catch ( DecoderException e )
{
throw e;
}
-
+
CertGenerationObject certGenObj = container.getCertGenerationObject();
-
+
Entry entry = session.getCoreSession().lookup( new DN( certGenObj.getTargetDN() ) );
-
+
if ( entry != null )
{
- TlsKeyGenerator.addKeyPair( ((ClonedServerEntry)entry).getOriginalEntry(), certGenObj.getIssuerDN(), certGenObj.getSubjectDN(), certGenObj.getKeyAlgorithm() );
+ TlsKeyGenerator.addKeyPair( ( ( ClonedServerEntry ) entry ).getOriginalEntry(), certGenObj.getIssuerDN(),
+ certGenObj.getSubjectDN(), certGenObj.getKeyAlgorithm() );
}
}
Modified: directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java (original)
+++ directory/apacheds/branches/apacheds-codec-merge/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java Thu Aug 12 14:55:50 2010
@@ -77,7 +77,7 @@ public class StoredProcedureExtendedOper
public void handleExtendedOperation( LdapSession session, InternalExtendedRequest req ) throws Exception
{
- StoredProcedure spBean = decodeBean( req.getPayload() );
+ StoredProcedure spBean = decodeBean( req.getEncodedValue() );
String procedure = StringTools.utf8ToString( spBean.getProcedure() );
ClonedServerEntry spUnit = manager.findStoredProcUnit( session.getCoreSession(), procedure );
Modified: directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
URL: http://svn.apache.org/viewvc/directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java (original)
+++ directory/clients/ldap/branches/ldap-client-codec-merge/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java Thu Aug 12 14:55:50 2010
@@ -97,7 +97,6 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.codec.controls.ControlImpl;
import org.apache.directory.shared.ldap.codec.del.DelRequestCodec;
import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
-import org.apache.directory.shared.ldap.codec.intermediate.IntermediateResponseCodec;
import org.apache.directory.shared.ldap.codec.modify.ModifyRequestCodec;
import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestCodec;
import org.apache.directory.shared.ldap.codec.search.Filter;
@@ -127,6 +126,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
import org.apache.directory.shared.ldap.message.internal.InternalExtendedResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalIntermediateResponse;
import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
import org.apache.directory.shared.ldap.message.internal.InternalMessage;
import org.apache.directory.shared.ldap.message.internal.InternalModifyDnResponse;
@@ -378,20 +378,20 @@ public class LdapNetworkConnection exten
/**
* Convert a IntermediateResponseCodec to a IntermediateResponse message based on the ResponseFuture's type
*/
- private void setIResponse( IntermediateResponseCodec intermediateResponseCodec, ResponseFuture responseFuture )
- throws Exception
+ private void setIntermediateResponse( InternalIntermediateResponse internalIntermediateResponse,
+ ResponseFuture responseFuture ) throws Exception
{
IntermediateResponse intermediateResponse = null;
if ( responseFuture instanceof SearchFuture )
{
intermediateResponse = new SearchIntermediateResponse();
- addControls( intermediateResponseCodec, ( SearchIntermediateResponse ) intermediateResponse );
+ addControls( internalIntermediateResponse, ( SearchIntermediateResponse ) intermediateResponse );
}
else if ( responseFuture instanceof ExtendedFuture )
{
intermediateResponse = new ExtendedIntermediateResponse();
- addControls( intermediateResponseCodec, ( ExtendedIntermediateResponse ) intermediateResponse );
+ addControls( internalIntermediateResponse, ( ExtendedIntermediateResponse ) intermediateResponse );
}
else
{
@@ -400,8 +400,8 @@ public class LdapNetworkConnection exten
+ responseFuture.getClass().getName() );
}
- intermediateResponse.setResponseName( intermediateResponseCodec.getResponseName() );
- intermediateResponse.setResponseValue( intermediateResponseCodec.getResponseValue() );
+ intermediateResponse.setResponseName( internalIntermediateResponse.getResponseName() );
+ intermediateResponse.setResponseValue( internalIntermediateResponse.getResponseValue() );
responseFuture.set( intermediateResponse );
}
@@ -1764,6 +1764,11 @@ public class LdapNetworkConnection exten
break;
+ case INTERMEDIATE_RESPONSE:
+ setIntermediateResponse( ( InternalIntermediateResponse ) response, responseFuture );
+
+ break;
+
case MODIFY_RESPONSE:
// Transform the response
ModifyResponse modifyResponse = convert( ( InternalModifyResponse ) response );
@@ -1852,15 +1857,6 @@ public class LdapNetworkConnection exten
switch ( response.getMessageType() )
{
- case INTERMEDIATE_RESPONSE:
- IntermediateResponseCodec intermediateResponseCodec = ( IntermediateResponseCodec ) response;
- intermediateResponseCodec.setMessageId( messageId );
- intermediateResponseCodec.addControls( response.getControls() );
-
- setIResponse( intermediateResponseCodec, responseFuture );
-
- break;
-
case SEARCH_RESULT_DONE:
// Store the response into the responseQueue
SearchResultDoneCodec searchResultDoneCodec = ( SearchResultDoneCodec ) response;
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java Thu Aug 12 14:55:50 2010
@@ -28,7 +28,6 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.codec.controls.AbstractControl;
import org.apache.directory.shared.ldap.codec.del.DelRequestCodec;
import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
-import org.apache.directory.shared.ldap.codec.intermediate.IntermediateResponseCodec;
import org.apache.directory.shared.ldap.codec.modify.ModifyRequestCodec;
import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestCodec;
import org.apache.directory.shared.ldap.codec.search.SearchRequestCodec;
@@ -46,6 +45,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.internal.InternalDeleteRequest;
import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
import org.apache.directory.shared.ldap.message.internal.InternalExtendedResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalIntermediateResponse;
import org.apache.directory.shared.ldap.message.internal.InternalMessage;
import org.apache.directory.shared.ldap.message.internal.InternalModifyDnResponse;
import org.apache.directory.shared.ldap.message.internal.InternalModifyResponse;
@@ -292,9 +292,9 @@ public class LdapMessageContainer extend
/**
* @return Returns the IntermediateResponse stored in the container
*/
- public IntermediateResponseCodec getIntermediateResponse()
+ public InternalIntermediateResponse getInternalIntermediateResponse()
{
- return ( IntermediateResponseCodec ) ldapMessage;
+ return ( InternalIntermediateResponse ) internalMessage;
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java Thu Aug 12 14:55:50 2010
@@ -73,7 +73,6 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.codec.controls.ControlEnum;
import org.apache.directory.shared.ldap.codec.controls.ControlImpl;
import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
-import org.apache.directory.shared.ldap.codec.intermediate.IntermediateResponseCodec;
import org.apache.directory.shared.ldap.codec.modify.ModifyRequestCodec;
import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestCodec;
import org.apache.directory.shared.ldap.codec.search.ExtensibleMatchFilter;
@@ -95,6 +94,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.DeleteRequestImpl;
import org.apache.directory.shared.ldap.message.DeleteResponseImpl;
import org.apache.directory.shared.ldap.message.ExtendedResponseImpl;
+import org.apache.directory.shared.ldap.message.IntermediateResponseImpl;
import org.apache.directory.shared.ldap.message.ModifyDnResponseImpl;
import org.apache.directory.shared.ldap.message.ModifyResponseImpl;
import org.apache.directory.shared.ldap.message.ReferralImpl;
@@ -112,6 +112,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.internal.InternalDeleteRequest;
import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
import org.apache.directory.shared.ldap.message.internal.InternalExtendedResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalIntermediateResponse;
import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
import org.apache.directory.shared.ldap.message.internal.InternalMessage;
import org.apache.directory.shared.ldap.message.internal.InternalModifyDnResponse;
@@ -3184,9 +3185,9 @@ public class LdapMessageGrammar extends
LdapMessageContainer ldapMessageContainer = ( LdapMessageContainer ) container;
// Now, we can allocate the IntermediateResponse Object
- IntermediateResponseCodec intermediateResponse = new IntermediateResponseCodec();
- intermediateResponse.setMessageId( ldapMessageContainer.getMessageId() );
- ldapMessageContainer.setLdapMessage( intermediateResponse );
+ InternalIntermediateResponse intermediateResponse = new IntermediateResponseImpl(
+ ldapMessageContainer.getMessageId() );
+ ldapMessageContainer.setInternalMessage( intermediateResponse );
log.debug( "Intermediate Response" );
}
@@ -3210,7 +3211,8 @@ public class LdapMessageGrammar extends
LdapMessageContainer ldapMessageContainer = ( LdapMessageContainer ) container;
// We can get the IntermediateResponse Object
- IntermediateResponseCodec intermediateResponse = ldapMessageContainer.getIntermediateResponse();
+ InternalIntermediateResponse intermediateResponse = ldapMessageContainer
+ .getInternalIntermediateResponse();
// Get the Value and store it in the IntermediateResponse
TLV tlv = ldapMessageContainer.getCurrentTLV();
@@ -3230,8 +3232,9 @@ public class LdapMessageGrammar extends
try
{
- OID oid = new OID( StringTools.utf8ToString( responseNameBytes ) );
- intermediateResponse.setResponseName( oid );
+ String oidStr = StringTools.utf8ToString( responseNameBytes );
+ OID oid = new OID( oidStr );
+ intermediateResponse.setResponseName( oidStr );
}
catch ( DecoderException de )
{
@@ -3273,7 +3276,8 @@ public class LdapMessageGrammar extends
LdapMessageContainer ldapMessageContainer = ( LdapMessageContainer ) container;
// We can get the IntermediateResponse Object
- IntermediateResponseCodec intermediateResponse = ldapMessageContainer.getIntermediateResponse();
+ InternalIntermediateResponse intermediateResponse = ldapMessageContainer
+ .getInternalIntermediateResponse();
// Get the Value and store it in the IntermediateResponse
TLV tlv = ldapMessageContainer.getCurrentTLV();
@@ -3316,7 +3320,8 @@ public class LdapMessageGrammar extends
LdapMessageContainer ldapMessageContainer = ( LdapMessageContainer ) container;
// We can allocate the ExtendedRequest Object
- IntermediateResponseCodec intermediateResponse = ldapMessageContainer.getIntermediateResponse();
+ InternalIntermediateResponse intermediateResponse = ldapMessageContainer
+ .getInternalIntermediateResponse();
// Get the Value and store it in the IntermediateResponse
TLV tlv = ldapMessageContainer.getCurrentTLV();
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapProtocolEncoder.java Thu Aug 12 14:55:50 2010
@@ -36,6 +36,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.CompareResponseImpl;
import org.apache.directory.shared.ldap.message.DeleteResponseImpl;
import org.apache.directory.shared.ldap.message.ExtendedResponseImpl;
+import org.apache.directory.shared.ldap.message.IntermediateResponseImpl;
import org.apache.directory.shared.ldap.message.ModifyDnResponseImpl;
import org.apache.directory.shared.ldap.message.ModifyResponseImpl;
import org.apache.directory.shared.ldap.message.control.Control;
@@ -44,6 +45,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.internal.InternalCompareResponse;
import org.apache.directory.shared.ldap.message.internal.InternalDeleteResponse;
import org.apache.directory.shared.ldap.message.internal.InternalExtendedResponse;
+import org.apache.directory.shared.ldap.message.internal.InternalIntermediateResponse;
import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
import org.apache.directory.shared.ldap.message.internal.InternalMessage;
import org.apache.directory.shared.ldap.message.internal.InternalModifyDnResponse;
@@ -112,7 +114,7 @@ public class LdapProtocolEncoder extends
if ( ( message instanceof InternalBindResponse ) || ( message instanceof InternalDeleteResponse )
|| ( message instanceof InternalAddResponse ) || ( message instanceof InternalCompareResponse )
|| ( message instanceof InternalExtendedResponse ) || ( message instanceof InternalModifyResponse )
- || ( message instanceof InternalModifyDnResponse ) )
+ || ( message instanceof InternalModifyDnResponse ) || ( message instanceof InternalIntermediateResponse ) )
{
try
{
@@ -577,6 +579,49 @@ public class LdapProtocolEncoder extends
/**
+ * Compute the intermediateResponse length
+ *
+ * intermediateResponse :
+ *
+ * 0x79 L1
+ * |
+ * [+--> 0x80 L2 name
+ * [+--> 0x81 L3 response]]
+ *
+ * L1 = [ + Length(0x80) + Length(L2) + L2
+ * [ + Length(0x81) + Length(L3) + L3]]
+ *
+ * Length(IntermediateResponse) = Length(0x79) + Length(L1) + L1
+ *
+ * @return The IntermediateResponse length
+ */
+ private int computeIntermediateResponseLength( InternalIntermediateResponse intermediateResponse )
+ {
+ int intermediateResponseLength = 0;
+
+ if ( !StringTools.isEmpty( intermediateResponse.getResponseName() ) )
+ {
+ byte[] responseNameBytes = StringTools.getBytesUtf8( intermediateResponse.getResponseName() );
+
+ int responseNameLength = responseNameBytes.length;
+ intermediateResponseLength += 1 + TLV.getNbBytes( responseNameLength ) + responseNameLength;
+ intermediateResponse.setOidBytes( responseNameBytes );
+ }
+
+ byte[] encodedValue = intermediateResponse.getResponseValue();
+
+ if ( encodedValue != null )
+ {
+ intermediateResponseLength += 1 + TLV.getNbBytes( encodedValue.length ) + encodedValue.length;
+ }
+
+ intermediateResponse.setIntermediateResponseLength( intermediateResponseLength );
+
+ return 1 + TLV.getNbBytes( intermediateResponseLength ) + intermediateResponseLength;
+ }
+
+
+ /**
* Encode the AddResponse message to a PDU.
*
* @param buffer The buffer where to put the PDU
@@ -750,6 +795,56 @@ public class LdapProtocolEncoder extends
/**
+ * Encode the IntermediateResponse message to a PDU.
+ * IntermediateResponse :
+ * 0x79 LL
+ * [0x80 LL response name]
+ * [0x81 LL responseValue]
+ *
+ * @param buffer The buffer where to put the PDU
+ */
+ private void encodeIntermediateResponse( ByteBuffer buffer, IntermediateResponseImpl intermediateResponse )
+ throws EncoderException
+ {
+ try
+ {
+ // The ExtendedResponse Tag
+ buffer.put( LdapConstants.INTERMEDIATE_RESPONSE_TAG );
+ buffer.put( TLV.getBytes( intermediateResponse.getIntermediateResponseLength() ) );
+
+ // The responseName, if any
+ byte[] responseNameBytes = intermediateResponse.getOidBytes();
+
+ if ( ( responseNameBytes != null ) && ( responseNameBytes.length != 0 ) )
+ {
+ buffer.put( ( byte ) LdapConstants.INTERMEDIATE_RESPONSE_NAME_TAG );
+ buffer.put( TLV.getBytes( responseNameBytes.length ) );
+ buffer.put( responseNameBytes );
+ }
+
+ // The encodedValue, if any
+ byte[] encodedValue = intermediateResponse.getResponseValue();
+
+ if ( encodedValue != null )
+ {
+ buffer.put( ( byte ) LdapConstants.INTERMEDIATE_RESPONSE_VALUE_TAG );
+
+ buffer.put( TLV.getBytes( encodedValue.length ) );
+
+ if ( encodedValue.length != 0 )
+ {
+ buffer.put( encodedValue );
+ }
+ }
+ }
+ catch ( BufferOverflowException boe )
+ {
+ throw new EncoderException( I18n.err( I18n.ERR_04005 ) );
+ }
+ }
+
+
+ /**
* Encode the ModifyResponse message to a PDU.
*
* @param buffer The buffer where to put the PDU
@@ -818,6 +913,9 @@ public class LdapProtocolEncoder extends
case EXTENDED_RESPONSE:
return computeExtendedResponseLength( ( ExtendedResponseImpl ) message );
+ case INTERMEDIATE_RESPONSE:
+ return computeIntermediateResponseLength( ( IntermediateResponseImpl ) message );
+
case MODIFY_RESPONSE:
return computeModifyResponseLength( ( ModifyResponseImpl ) message );
@@ -854,6 +952,10 @@ public class LdapProtocolEncoder extends
encodeExtendedResponse( bb, ( ExtendedResponseImpl ) message );
break;
+ case INTERMEDIATE_RESPONSE:
+ encodeIntermediateResponse( bb, ( IntermediateResponseImpl ) message );
+ break;
+
case MODIFY_RESPONSE:
encodeModifyResponse( bb, ( ModifyResponseImpl ) message );
break;
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapTransformer.java Thu Aug 12 14:55:50 2010
@@ -25,13 +25,11 @@ import java.util.Collection;
import java.util.List;
import org.apache.directory.shared.asn1.codec.DecoderException;
-import org.apache.directory.shared.asn1.primitives.OID;
import org.apache.directory.shared.i18n.I18n;
import org.apache.directory.shared.ldap.codec.bind.BindRequestCodec;
import org.apache.directory.shared.ldap.codec.bind.SaslCredentials;
import org.apache.directory.shared.ldap.codec.bind.SimpleAuthentication;
import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
-import org.apache.directory.shared.ldap.codec.intermediate.IntermediateResponseCodec;
import org.apache.directory.shared.ldap.codec.modify.ModifyRequestCodec;
import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestCodec;
import org.apache.directory.shared.ldap.codec.search.AndFilter;
@@ -68,7 +66,6 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.AliasDerefMode;
import org.apache.directory.shared.ldap.message.BindRequestImpl;
import org.apache.directory.shared.ldap.message.ExtendedRequestImpl;
-import org.apache.directory.shared.ldap.message.IntermediateResponseImpl;
import org.apache.directory.shared.ldap.message.LdapResultImpl;
import org.apache.directory.shared.ldap.message.ModifyDnRequestImpl;
import org.apache.directory.shared.ldap.message.ModifyRequestImpl;
@@ -124,10 +121,10 @@ public class LdapTransformer
}
// Codec : OID requestName -> Internal : String oid
- internalMessage.setOid( extendedRequest.getRequestName() );
+ internalMessage.setID( extendedRequest.getRequestName() );
// Codec : OctetString requestValue -> Internal : byte [] payload
- internalMessage.setPayload( extendedRequest.getRequestValue() );
+ internalMessage.setEncodedValue( extendedRequest.getRequestValue() );
return internalMessage;
}
@@ -700,39 +697,6 @@ public class LdapTransformer
/**
- * Transform a Internal IntermediateResponse to a Codec IntermediateResponse
- *
- * @param internalMessage The incoming Internal IntermediateResponse
- * @return The IntermediateResponseCodec instance
- */
- private static LdapMessageCodec transformIntermediateResponse( InternalMessage internalMessage )
- {
- IntermediateResponseImpl internalIntermediateResponse = ( IntermediateResponseImpl ) internalMessage;
- IntermediateResponseCodec intermediateResponse = new IntermediateResponseCodec();
-
- // Internal : String oid -> Codec : String responseName
- try
- {
- intermediateResponse.setResponseName( new OID( internalIntermediateResponse.getResponseName() ) );
- }
- catch ( DecoderException de )
- {
- LOG.warn( "The OID " + internalIntermediateResponse.getResponseName() + " is invalid : " + de.getMessage() );
- intermediateResponse.setResponseName( null );
- }
-
- // Internal : byte [] value -> Codec : byte[] value
- intermediateResponse.setResponseValue( internalIntermediateResponse.getResponseValue() );
-
- // Transform the ldapResult
- intermediateResponse.setLdapResult( transformLdapResult( ( LdapResultImpl ) internalIntermediateResponse
- .getLdapResult() ) );
-
- return intermediateResponse;
- }
-
-
- /**
* Transform a Internal SearchResponseDone to a Codec SearchResultDone
*
* @param internalMessage The incoming Internal SearchResponseDone
@@ -846,10 +810,6 @@ public class LdapTransformer
case BIND_REQUEST:
codecMessage = transformBindRequest( msg );
break;
-
- case INTERMEDIATE_RESPONSE:
- codecMessage = transformIntermediateResponse( msg );
- break;
}
codecMessage.setMessageId( msg.getMessageId() );
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/ExtendedRequestImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/ExtendedRequestImpl.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/ExtendedRequestImpl.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/ExtendedRequestImpl.java Thu Aug 12 14:55:50 2010
@@ -72,24 +72,11 @@ public class ExtendedRequestImpl extends
// -----------------------------------------------------------------------
/**
- * Gets the Object Idendifier corresponding to the extended request type.
- * This is the <b>requestName</b> portion of the ext. req. PDU.
- *
- * @return the dotted-decimal representation as a String of the OID
- */
- public String getOid()
- {
- return oid;
- }
-
-
- /**
* Sets the Object Idendifier corresponding to the extended request type.
*
- * @param oid
- * the dotted-decimal representation as a String of the OID
+ * @param oid the dotted-decimal representation as a String of the OID
*/
- public void setOid( String oid )
+ public void setID( String oid )
{
this.oid = oid;
}
@@ -102,7 +89,7 @@ public class ExtendedRequestImpl extends
*
* @return byte array of data
*/
- public byte[] getPayload()
+ public byte[] getEncodedValue()
{
if ( payload == null )
{
@@ -118,10 +105,9 @@ public class ExtendedRequestImpl extends
/**
* Sets the extended request's <b>requestValue</b> portion of the PDU.
*
- * @param payload
- * byte array of data encapsulating ext. req. parameters
+ * @param payload byte array of data encapsulating ext. req. parameters
*/
- public void setPayload( byte[] payload )
+ public void setEncodedValue( byte[] payload )
{
if ( payload != null )
{
@@ -214,32 +200,33 @@ public class ExtendedRequestImpl extends
InternalExtendedRequest req = ( InternalExtendedRequest ) obj;
- if ( ( oid != null ) && ( req.getOid() == null ) )
+ if ( ( oid != null ) && ( req.getID() == null ) )
{
return false;
}
- if ( ( oid == null ) && ( req.getOid() != null ) )
+ if ( ( oid == null ) && ( req.getID() != null ) )
{
return false;
}
- if ( ( oid != null ) && ( req.getOid() != null ) && !oid.equals( req.getOid() ) )
+ if ( ( oid != null ) && ( req.getID() != null ) && !oid.equals( req.getID() ) )
{
return false;
}
- if ( ( payload != null ) && ( req.getPayload() == null ) )
+ if ( ( payload != null ) && ( req.getEncodedValue() == null ) )
{
return false;
}
- if ( ( payload == null ) && ( req.getPayload() != null ) )
+ if ( ( payload == null ) && ( req.getEncodedValue() != null ) )
{
return false;
}
- if ( ( payload != null ) && ( req.getPayload() != null ) && !Arrays.equals( payload, req.getPayload() ) )
+ if ( ( payload != null ) && ( req.getEncodedValue() != null )
+ && !Arrays.equals( payload, req.getEncodedValue() ) )
{
return false;
}
@@ -270,15 +257,15 @@ public class ExtendedRequestImpl extends
}
+ /**
+ * Gets the Object Idendifier corresponding to the extended request type.
+ * This is the <b>requestName</b> portion of the ext. req. PDU.
+ *
+ * @return the dotted-decimal representation as a String of the OID
+ */
public String getID()
{
- return getOid();
- }
-
-
- public byte[] getEncodedValue()
- {
- return getPayload();
+ return oid;
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/IntermediateResponseImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/IntermediateResponseImpl.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/IntermediateResponseImpl.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/IntermediateResponseImpl.java Thu Aug 12 14:55:50 2010
@@ -38,9 +38,15 @@ public class IntermediateResponseImpl ex
/** ResponseName for the intermediate response */
protected String oid;
+ /** The response name as a byte[] */
+ private byte[] oidBytes;
+
/** Response Value for the intermediate response */
protected byte[] value;
+ /** The encoded intermediateResponse length */
+ private int intermediateResponseLength;
+
// ------------------------------------------------------------------------
// Constructors
@@ -93,22 +99,33 @@ public class IntermediateResponseImpl ex
/**
- * Gets the OID uniquely identifying this Intemediate response (a.k.a. its
+ * Gets the OID uniquely identifying this Intermediate response (a.k.a. its
* name).
*
- * @return the OID of the Intemediate response type.
+ * @return the OID of the Intermediate response type.
*/
public String getResponseName()
{
- return oid;
+ return ( ( oid == null ) ? "" : oid );
}
/**
- * Sets the OID uniquely identifying this Intemediate response (a.k.a. its
+ * Gets the OID bytes
+ *
+ * @return the OID bytes of the Intermediate response type.
+ */
+ public byte[] getOidBytes()
+ {
+ return oidBytes;
+ }
+
+
+ /**
+ * Sets the OID uniquely identifying this Intermediate response (a.k.a. its
* name).
*
- * @param oid the OID of the Intemediate response type.
+ * @param oid the OID of the Intermediate response type.
*/
public void setResponseName( String oid )
{
@@ -119,6 +136,15 @@ public class IntermediateResponseImpl ex
/**
* {@inheritDoc}
*/
+ public void setOidBytes( byte[] oidBytes )
+ {
+ this.oidBytes = oidBytes;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public int hashCode()
{
@@ -195,4 +221,22 @@ public class IntermediateResponseImpl ex
return true;
}
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setIntermediateResponseLength( int intermediateResponseLength )
+ {
+ this.intermediateResponseLength = intermediateResponseLength;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public int getIntermediateResponseLength()
+ {
+ return intermediateResponseLength;
+ }
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CancelRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CancelRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CancelRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CancelRequest.java Thu Aug 12 14:55:50 2010
@@ -71,7 +71,7 @@ public class CancelRequest extends Exten
public CancelRequest( int messageId, int cancelId )
{
super( messageId );
- setOid( EXTENSION_OID );
+ setID( EXTENSION_OID );
this.cancelId = cancelId;
}
@@ -111,7 +111,7 @@ public class CancelRequest extends Exten
}
}
- return super.getPayload();
+ return super.getEncodedValue();
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CertGenerationRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CertGenerationRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CertGenerationRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/CertGenerationRequest.java Thu Aug 12 14:55:50 2010
@@ -66,7 +66,7 @@ public class CertGenerationRequest exten
public CertGenerationRequest( int messageId, String targerDN, String issuerDN, String subjectDN, String keyAlgorithm )
{
super( messageId );
- setOid( EXTENSION_OID );
+ setID( EXTENSION_OID );
this.certGenObj = new CertGenerationObject();
certGenObj.setTargetDN( targerDN );
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/GracefulShutdownRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/GracefulShutdownRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/GracefulShutdownRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/GracefulShutdownRequest.java Thu Aug 12 14:55:50 2010
@@ -73,7 +73,7 @@ public class GracefulShutdownRequest ext
public GracefulShutdownRequest( int messageId, int timeOffline, int delay )
{
super( messageId );
- setOid( EXTENSION_OID );
+ setID( EXTENSION_OID );
this.timeOffline = timeOffline;
this.delay = delay;
}
@@ -142,7 +142,7 @@ public class GracefulShutdownRequest ext
}
}
- return super.getPayload();
+ return super.getEncodedValue();
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/LaunchDiagnosticUiRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/LaunchDiagnosticUiRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/LaunchDiagnosticUiRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/LaunchDiagnosticUiRequest.java Thu Aug 12 14:55:50 2010
@@ -45,8 +45,8 @@ public class LaunchDiagnosticUiRequest e
public LaunchDiagnosticUiRequest( int messageId )
{
super( messageId );
- setOid( EXTENSION_OID );
- setPayload( EMPTY_PAYLOAD );
+ setID( EXTENSION_OID );
+ setEncodedValue( EMPTY_PAYLOAD );
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/StoredProcedureRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/StoredProcedureRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/StoredProcedureRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/extended/StoredProcedureRequest.java Thu Aug 12 14:55:50 2010
@@ -56,7 +56,7 @@ public class StoredProcedureRequest exte
public StoredProcedureRequest( int messageId )
{
super( messageId );
- this.setOid( EXTENSION_OID );
+ this.setID( EXTENSION_OID );
this.procedure = new StoredProcedure();
}
@@ -64,7 +64,7 @@ public class StoredProcedureRequest exte
public StoredProcedureRequest( int messageId, String procedure, String language )
{
super( messageId );
- this.setOid( EXTENSION_OID );
+ this.setID( EXTENSION_OID );
this.procedure = new StoredProcedure();
this.setLanguage( language );
this.setProcedure( procedure );
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalExtendedRequest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalExtendedRequest.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalExtendedRequest.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalExtendedRequest.java Thu Aug 12 14:55:50 2010
@@ -19,6 +19,7 @@
*/
package org.apache.directory.shared.ldap.message.internal;
+
import org.apache.directory.shared.ldap.codec.MessageTypeEnum;
import org.apache.directory.shared.ldap.message.SingleReplyRequest;
@@ -70,16 +71,15 @@ public interface InternalExtendedRequest
*
* @return the dotted-decimal representation as a String of the OID
*/
- String getOid();
+ String getID();
/**
* Sets the Object Idendifier corresponding to the extended request type.
*
- * @param oid
- * the dotted-decimal representation as a String of the OID
+ * @param oid the dotted-decimal representation as a String of the OID
*/
- void setOid( String oid );
+ void setID( String oid );
/**
@@ -89,14 +89,13 @@ public interface InternalExtendedRequest
*
* @return byte array of data
*/
- byte[] getPayload();
+ byte[] getEncodedValue();
/**
* Sets the extended request's <b>requestValue</b> portion of the PDU.
*
- * @param payload
- * byte array of data encapsulating ext. req. parameters
+ * @param payload byte array of data encapsulating ext. req. parameters
*/
- void setPayload( byte[] payload );
+ void setEncodedValue( byte[] payload );
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalIntermediateResponse.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalIntermediateResponse.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalIntermediateResponse.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/message/internal/InternalIntermediateResponse.java Thu Aug 12 14:55:50 2010
@@ -20,6 +20,7 @@
package org.apache.directory.shared.ldap.message.internal;
+
import org.apache.directory.shared.ldap.codec.MessageTypeEnum;
@@ -65,4 +66,25 @@ public interface InternalIntermediateRes
* @param value The responseValue
*/
void setResponseValue( byte[] value );
+
+
+ /**
+ * Sets the OID bytes
+ *
+ * @param oid the OID bytes of the Intermediate response type.
+ */
+ void setOidBytes( byte[] oidBytes );
+
+
+ /**
+ * Stores the encoded length for the IntermediateResponse
+ * @param intermediateResponseLength The encoded length
+ */
+ void setIntermediateResponseLength( int intermediateResponseLength );
+
+
+ /**
+ * @return The encoded IntermediateResponse's length
+ */
+ int getIntermediateResponseLength();
}
Modified: directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java?rev=984812&r1=984811&r2=984812&view=diff
==============================================================================
--- directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java (original)
+++ directory/shared/branches/shared-codec-merge/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java Thu Aug 12 14:55:50 2010
@@ -31,6 +31,7 @@ import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
+import javax.naming.directory.InvalidAttributeIdentifierException;
import javax.naming.ldap.ExtendedRequest;
import javax.naming.ldap.ExtendedResponse;
@@ -275,7 +276,7 @@ public class AttributeUtils
try
{
String comparedStr = normalizer.normalize( compared.getString() );
-
+
for ( NamingEnumeration<?> values = attr.getAll(); values.hasMoreElements(); /**/)
{
String value = ( String ) values.nextElement();
@@ -285,7 +286,7 @@ public class AttributeUtils
}
}
}
- catch( NamingException e )
+ catch ( NamingException e )
{
throw new LdapException( e.getMessage() );
}
@@ -358,7 +359,7 @@ public class AttributeUtils
for ( NamingEnumeration<?> values = attr.getAll(); values.hasMoreElements(); /**/)
{
Object value = values.nextElement();
-
+
if ( value instanceof byte[] && ArrayUtils.isEquals( comparedBytes, value ) )
{
return true;
@@ -404,7 +405,7 @@ public class AttributeUtils
{
Object attrVal = attrVals.nextElement();
- if ( attrVal instanceof String && strVal.equalsIgnoreCase( ( String ) attrVal ) )
+ if ( attrVal instanceof String && strVal.equalsIgnoreCase( ( String ) attrVal ) )
{
return true;
}
@@ -420,7 +421,7 @@ public class AttributeUtils
{
Object attrVal = attrVals.nextElement();
- if ( attrVal instanceof byte[] && Arrays.equals( ( byte[] ) attrVal, valueBytes ) )
+ if ( attrVal instanceof byte[] && Arrays.equals( ( byte[] ) attrVal, valueBytes ) )
{
return true;
}
@@ -488,7 +489,6 @@ public class AttributeUtils
}
*/
-
/**
* Creates a new attribute which contains the values representing the
* difference of two attributes. If both attributes are null then we cannot
@@ -877,7 +877,7 @@ public class AttributeUtils
if ( !parseNumber( str, pos ) )
{
- throw new ParseException(I18n.err( I18n.ERR_04345 ), pos.start );
+ throw new ParseException( I18n.err( I18n.ERR_04345 ), pos.start );
}
}
}
@@ -1182,7 +1182,6 @@ public class AttributeUtils
}
*/
-
/**
* Convert a BasicAttributes or a AttributesImpl to a ServerEntry
*
@@ -1327,8 +1326,8 @@ public class AttributeUtils
return null;
}
}
-
-
+
+
public static ExtendedRequest toJndiExtendedRequest( final InternalExtendedRequest request )
{
class JndiExtendedRequest implements ExtendedRequest
@@ -1339,22 +1338,24 @@ public class AttributeUtils
return toJndiExtendedResponse( request );
}
+
public byte[] getEncodedValue()
{
- return request.getPayload();
+ return request.getEncodedValue();
}
+
public String getID()
{
- return request.getOid();
+ return request.getID();
}
-
- }
-
+
+ }
+
return new JndiExtendedRequest();
}
-
-
+
+
/**
* TODO toJndiExtendedResponse. This is NOT correct ATM
*
@@ -1370,12 +1371,13 @@ public class AttributeUtils
return request.getEncodedValue();
}
+
public String getID()
{
return request.getID();
}
- }
-
+ }
+
return new JndiExtendedResponse();
}
}