class LdapRealm extends DefaultLdapRealm implements RealmLifecycle, ShiroAuthorizationInfoProvider {

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo( PrincipalCollection principals )
    {
        try
        {
            AuthorizationInfo info = super.doGetAuthorizationInfo( principals );
            securityLog.debug( withRealm( "Queried for authorization info for user '%s'",
                    principals.getPrimaryPrincipal() ) );
            return info;
        }
        catch ( AuthorizationException e )
        {
            securityLog.warn( withRealm( "Failed to get authorization info: '%s' caused by '%s'",
                    e.getMessage(), e.getCause().getMessage() ) );
            return null;
        }
    }

    public  LdapRealm( Config config, SecurityLog securityLog, SecureHasher secureHasher );

}