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

ASF GitHub Bot commented on CALCITE-2294:
-----------------------------------------

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

    https://github.com/apache/calcite-avatica/pull/48#discussion_r190366391
  
    --- Diff: 
server/src/test/java/org/apache/calcite/avatica/server/CustomAuthHttpServerTest.java
 ---
    @@ -175,63 +126,165 @@ public void 
testCustomBasicImpersonationConfigWithDisallowedUser() throws Except
         }
       }
     
    +  @Test
    +  public void testCustomConfigDisallowsWithHandlerMethod() {
    +    AvaticaServerConfiguration configuration = new 
CustomBasicImpersonationConfig();
    +    server = new HttpServer.Builder()
    +            .withCustomAuthentication(configuration)
    +            .withHandler(Mockito.mock(AvaticaHandler.class))
    +            .withPort(0)
    +            .build();
    +    try {
    +      server.start();
    +      fail("Expected an exception");
    +    } catch (IllegalStateException e) {
    +      String assertString = "Handlers and SSLFactory cannot be configured 
with "
    +              + "HTTPServer Builder when using CUSTOM Authentication Type";
    +      assertThat(e.getMessage(), containsString(assertString));
    --- End diff --
    
    I'm not a fan of tests that assert a certain error message. IMO, if it's 
important enough to validate that we hit this exact code path (and not another 
similar), we should have a named exception.
    
    I think just validating that the `ISE` was thrown is sufficient.


> Allow customization for AvaticaServerConfiguration for plugging new 
> authentication mechanisms
> ---------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-2294
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2294
>             Project: Calcite
>          Issue Type: Improvement
>          Components: avatica
>            Reporter: Karan Mehta
>            Priority: Major
>
> {{AvaticaServerConfiguration}} is currently only created if authentication 
> mechanism such as {{BASIC, DIGEST or SPNEGO}} is provided. We can change it 
> to a builder pattern to create this object and provide a way for users to 
> plugin their own security configuration.
> An example here can be using it for custom config that supports MTLS.
> Thanks [~alexaraujo] for suggesting this approach.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to