[ 
https://issues.apache.org/jira/browse/DRILL-5910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16223111#comment-16223111
 ] 

ASF GitHub Bot commented on DRILL-5910:
---------------------------------------

Github user sohami commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1013#discussion_r147541442
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/security/ClientAuthenticatorProvider.java
 ---
    @@ -57,17 +57,17 @@ private ClientAuthenticatorProvider() {
     
         // then, custom factories
         if (customFactories != null) {
    -      try {
    -        final String[] factories = customFactories.split(",");
    -        for (final String factory : factories) {
    +      final String[] factories = customFactories.split(",");
    +      for (final String factory : factories) {
    +        try {
               final Class<?> clazz = Class.forName(factory);
               if (AuthenticatorFactory.class.isAssignableFrom(clazz)) {
                 final AuthenticatorFactory instance = (AuthenticatorFactory) 
clazz.newInstance();
                 authFactories.put(instance.getSimpleName(), instance);
               }
    +        } catch (final ClassNotFoundException | IllegalAccessException | 
InstantiationException e) {
    +          throw new DrillRuntimeException(String.format("Failed to create 
auth factory '%s'", factory), e);
    --- End diff --
    
    @vrozov  +1 - It makes sense to log the error and continue rather than 
failing because a custom factory cannot be instantiated. This is because client 
environment might be set to configure these custom factories but then for 
authentication it might be using other mechanism like Plain/Kerberos in which 
case connection should succeed.


> ClassNotFoundException message enhancement 
> -------------------------------------------
>
>                 Key: DRILL-5910
>                 URL: https://issues.apache.org/jira/browse/DRILL-5910
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.11.0
>            Reporter: Volodymyr Tkach
>            Assignee: Volodymyr Tkach
>            Priority: Minor
>              Labels: ready-to-commit
>             Fix For: 1.12.0
>
>
> We need to add factory name in exception message  when ClassNotFoundException 
> is caught and DrillRuntimeException is than re-thrown in 
> ClientAuthenticatorProvider constructor.
> Steps to repoduce:
> 1) Configure plain authentication
> 2) Add 
> -Ddrill.customAuthFactories=org.apache.drill.exec.rpc.security.maprsasl.MapRSaslFactory
>  to SQLLINE_JAVA_OPTS or another class that is not present in classpath.
> 3) Run sqlline and connect to drillbit



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to