You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2007/01/25 15:21:49 UTC

[jira] Resolved: (DIRSERVER-746) DefaultDirectoryService.createBootstrapEntries() throws NullPointerException if no authorizationService is configured

     [ https://issues.apache.org/jira/browse/DIRSERVER-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny resolved DIRSERVER-746.
-----------------------------------------

    Resolution: Fixed

Thanks for the post Bastiaan. And sorry for the loooooong time it took to respond.

Thanks for the report and for the patch. Nice catch !

I have somehow inverted the logic for this part : if we don't have an AuthorizationService, or if it's not a correct interceptor, then an exception is thrown (the Ldap Server is always supposed to set this kind of interceptor). If no authorization service is needed, then a pass-through service mst be created.

Here is the modified code :
...
            Interceptor authzInterceptor = interceptorChain.get( "authorizationService" );
            
            if ( authzInterceptor == null )
            {
                log.error( "The Authorization service is null : this is not allowed" );
                throw new NamingException( "The Authorization service is null" );
            }
            
            if ( !( authzInterceptor instanceof AuthorizationService) )
            {
                log.error( "The Authorization service is not set correctly : '{}' is an incorect interceptor", 
                    authzInterceptor.getClass().getName() );
                throw new NamingException( "The Authorization service is incorrectly set" );
                
            }

            AuthorizationService authzSrvc = ( AuthorizationService ) authzInterceptor;
            authzSrvc.cacheNewGroup( upName, normName, attributes );
...

> DefaultDirectoryService.createBootstrapEntries() throws NullPointerException if no authorizationService is configured
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-746
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-746
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>            Reporter: Bastiaan Bakker
>            Priority: Minor
>         Attachments: apacheds-1.0-RC4-authorizationservice.patch
>
>
> DefaultDirectoryService.createBootstrapEntries() has a hardcoded dependency on AuthorizationService being configured as the 'authorizationService' interceptor. If one does not want to configure an authorizationService the code in question will throw a NullPointerException. Also if one does configure a different authorizationService implementation the code will throw a ClassCastException. 
> Clearly the code should not assume an AuthorizationService instance has been configured as the  'authorizationService' interceptor.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.