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 2005/10/26 19:02:23 UTC
svn commit: r328677 -
/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/
Author: elecharny
Date: Wed Oct 26 10:02:10 2005
New Revision: 328677
URL: http://svn.apache.org/viewcvs?rev=328677&view=rev
Log:
Modified the Handler in order to avoid to feed the matchedDN in
cases where it's not allowed by the RFC
Modified:
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/BindHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ExtendedHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java
directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java Wed Oct 26 10:02:10 2005
@@ -83,14 +83,18 @@
resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if ( ( e.getResolvedName() != null ) &&
- ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
- ( code == ResultCodeEnum.ALIASPROBLEM ) ||
- ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
- ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn(
- e.getResolvedName().toString() );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
session.write( resp );
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/BindHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/BindHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/BindHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/BindHandler.java Wed Oct 26 10:02:10 2005
@@ -26,7 +26,6 @@
import javax.naming.spi.InitialContextFactory;
import org.apache.asn1new.util.StringUtils;
-import org.apache.asn1new.util.StringUtilsTest;
import org.apache.ldap.common.exception.LdapException;
import org.apache.ldap.common.message.BindRequest;
import org.apache.ldap.common.message.BindResponse;
@@ -44,8 +43,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-
/**
* A single reply handler for {@link org.apache.ldap.common.message.BindRequest}s.
*
@@ -144,13 +141,18 @@
msg += "\n\nBindRequest = \n" + req.toString();
}
- if ( ( e.getResolvedName() != null ) &&
- ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
- ( code == ResultCodeEnum.ALIASPROBLEM ) ||
- ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
- ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
result.setErrorMessage( msg );
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java Wed Oct 26 10:02:10 2005
@@ -44,7 +44,7 @@
*/
public class CompareHandler implements MessageHandler
{
- private static final Logger LOG = LoggerFactory.getLogger( CompareHandler.class );
+ private static final Logger log = LoggerFactory.getLogger( CompareHandler.class );
public void messageReceived( ProtocolSession session, Object request )
{
@@ -57,6 +57,7 @@
LdapContext ctx = SessionRegistry.getSingleton().getLdapContext( session, null, true );
ServerLdapContext newCtx = ( ServerLdapContext ) ctx.lookup( "" );
LdapName name = new LdapName( req.getName() );
+
if ( newCtx.compare( name, req.getAttributeId(), req.getAssertionValue() ) )
{
resp.getLdapResult().setResultCode( ResultCodeEnum.COMPARETRUE );
@@ -70,12 +71,13 @@
{
String msg = "failed to compare entry " + req.getName();
- if ( LOG.isDebugEnabled() )
+ if ( log.isDebugEnabled() )
{
msg += ":\n" + ExceptionUtils.getStackTrace( e );
}
ResultCodeEnum code;
+
if ( e instanceof LdapException )
{
code = ( ( LdapException ) e ).getResultCode() ;
@@ -90,9 +92,15 @@
if ( e instanceof NamingException )
{
- if ( ( ( NamingException ) e ).getResolvedName() != null )
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
{
- resp.getLdapResult().setMatchedDn( ( ( NamingException ) e ).getResolvedName().toString() );
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
}
}
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java Wed Oct 26 10:02:10 2005
@@ -78,9 +78,18 @@
resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if( e.getResolvedName() != null )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
session.write( resp );
@@ -88,7 +97,6 @@
}
resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- resp.getLdapResult().setMatchedDn( req.getName() );
session.write( resp );
}
}
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ExtendedHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ExtendedHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ExtendedHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ExtendedHandler.java Wed Oct 26 10:02:10 2005
@@ -75,6 +75,7 @@
ExtendedResponse res = new ExtendedResponseImpl( req.getMessageId() );
ExtendedOperationHandler handler = ( ExtendedOperationHandler ) handlers.get( req.getOid() );
+
if( handler == null )
{
res.setLdapResult( new LdapResultImpl( res ) );
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java Wed Oct 26 10:02:10 2005
@@ -91,6 +91,7 @@
}
ResultCodeEnum code;
+
if ( e instanceof LdapException )
{
code = ( ( LdapException ) e ).getResultCode() ;
@@ -103,9 +104,18 @@
resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if ( e.getResolvedName() != null )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
session.write( resp );
@@ -113,7 +123,6 @@
}
resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- resp.getLdapResult().setMatchedDn( req.getName() );
session.write( resp );
}
}
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java Wed Oct 26 10:02:10 2005
@@ -81,9 +81,18 @@
resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if ( e.getResolvedName() != null )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
session.write( resp );
@@ -91,7 +100,6 @@
}
resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- resp.getLdapResult().setMatchedDn( req.getName() );
session.write( resp );
return;
}
Modified: directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java?rev=328677&r1=328676&r2=328677&view=diff
==============================================================================
--- directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java (original)
+++ directory/protocol-providers/ldap/branches/protocol-ldap-utf8/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java Wed Oct 26 10:02:10 2005
@@ -1,5 +1,4 @@
/*
- * Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -113,7 +112,6 @@
SearchResponseDone resp = new SearchResponseDoneImpl( req.getMessageId() );
resp.setLdapResult( new LdapResultImpl( resp ) );
resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- resp.getLdapResult().setMatchedDn( req.getBase() );
Iterator it = Collections.singleton( resp ).iterator();
while( it.hasNext() )
@@ -134,28 +132,33 @@
}
SearchResponseDone resp = new SearchResponseDoneImpl( req.getMessageId() );
- ResultCodeEnum rc = null;
+ ResultCodeEnum code = null;
if( e instanceof LdapException )
{
- rc = ( ( LdapException ) e ).getResultCode();
+ code = ( ( LdapException ) e ).getResultCode();
}
else
{
- rc = ResultCodeEnum.getBestEstimate( e, req.getType() );
+ code = ResultCodeEnum.getBestEstimate( e, req.getType() );
}
resp.setLdapResult( new LdapResultImpl( resp ) );
- resp.getLdapResult().setResultCode( rc );
+ resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if( e.getResolvedName() != null )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
- }
- else
- {
- resp.getLdapResult().setMatchedDn( "" );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
Iterator it = Collections.singleton( resp ).iterator();
@@ -179,30 +182,35 @@
SearchResponseDone resp = new SearchResponseDoneImpl( req.getMessageId() );
- ResultCodeEnum rc = null;
+ ResultCodeEnum code = null;
if( e instanceof LdapException )
{
- rc = ( ( LdapException ) e ).getResultCode();
+ code = ( ( LdapException ) e ).getResultCode();
}
else
{
- rc = ResultCodeEnum.getBestEstimate( e, req.getType() );
+ code = ResultCodeEnum.getBestEstimate( e, req.getType() );
}
resp.setLdapResult( new LdapResultImpl( resp ) );
- resp.getLdapResult().setResultCode( rc );
+ resp.getLdapResult().setResultCode( code );
resp.getLdapResult().setErrorMessage( msg );
- if( e.getResolvedName() != null )
+ if ( e instanceof NamingException )
{
- resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
- }
- else
- {
- resp.getLdapResult().setMatchedDn( "" );
+ NamingException ne = (NamingException)e;
+
+ if ( ( ne.getResolvedName() != null ) &&
+ ( ( code == ResultCodeEnum.NOSUCHOBJECT ) ||
+ ( code == ResultCodeEnum.ALIASPROBLEM ) ||
+ ( code == ResultCodeEnum.INVALIDDNSYNTAX ) ||
+ ( code == ResultCodeEnum.ALIASDEREFERENCINGPROBLEM ) ) )
+ {
+ resp.getLdapResult().setMatchedDn( ne.getResolvedName().toString() );
+ }
}
return resp;
@@ -363,8 +371,6 @@
respDone.setLdapResult( new LdapResultImpl( respDone ) );
respDone.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
-
- respDone.getLdapResult().setMatchedDn( req.getBase() );
prefetched = null;