Description
Our ldap application has a custom partition and we only allow restricted searches on it.
If the queries do not comply with our rules, we throw a NamingException.
I guess good candidates for this are
- CannotProceedException
- NoPermissionException
The good news is that I even can provide the exception constructor with some extra information
that might help the searching user to adapt the query in order to succeed subsequently.
Unfortunately, such exception explanation are ignored in SearchHandler.java and only
"failed on search operation"
is returned to the client
Please find a diff below how this might be solved.
Secondly, it would be great to be able to localize also the main error texts. Since our
searches are only executed after a "bind" we do have the possibility to know the locale
preferences from our own user-data-base.
What do you think.
— SearchHandler.java.orig 2006-06-16 09:56:02.000000000 +0200
+++ SearchHandler.java 2006-06-16 09:57:28.000000000 +0200
@@ -345,7 +345,13 @@
LdapResult result = req.getResultResponse().getLdapResult();
result.setResultCode( code );
- result.setErrorMessage( msg );
+ String extraInfo="";
+ if (e.getMessage() != null)Unknown macro: {+ if (e.getMessage().trim().length()>0) { + extraInfo=": " + e.getMessage(); + }+ }+ result.setErrorMessage( msg + extraInfo );
if ( ( e.getResolvedName() != null )
&& ( ( code == ResultCodeEnum.NOSUCHOBJECT ) || ( code == ResultCodeEnum.ALIASPROBLEM )