@@ -803,64 +803,68 @@ public void testBearerTokenAuth() throws Exception {
803803 .options ().port (9090 ).notifier (new ConsoleNotifier (false )));
804804 mockServer .start ();
805805
806- String jwtToken1 = Arrays .stream (
807- new String []{"header" , "payload" , "signature" })
808- .map (s -> Base64 .getEncoder ().encodeToString (s .getBytes (StandardCharsets .UTF_8 )))
809- .reduce ((s1 , s2 ) -> s1 + "." + s2 ).get ();
810- try (Client client = new Client .Builder ().addEndpoint (Protocol .HTTP , "localhost" , mockServer .port (), false )
811- .useBearerTokenAuth (jwtToken1 )
812- .compressServerResponse (false )
813- .build ()) {
814-
815- mockServer .addStubMapping (WireMock .post (WireMock .anyUrl ())
816- .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken1 ))
817- .willReturn (WireMock .aResponse ()
818- .withHeader ("X-ClickHouse-Summary" ,
819- "{ \" read_bytes\" : \" 10\" , \" read_rows\" : \" 1\" }" )).build ());
806+ try {
807+ String jwtToken1 = Arrays .stream (
808+ new String []{"header" , "payload" , "signature" })
809+ .map (s -> Base64 .getEncoder ().encodeToString (s .getBytes (StandardCharsets .UTF_8 )))
810+ .reduce ((s1 , s2 ) -> s1 + "." + s2 ).get ();
811+ try (Client client = new Client .Builder ().addEndpoint (Protocol .HTTP , "localhost" , mockServer .port (), false )
812+ .useBearerTokenAuth (jwtToken1 )
813+ .compressServerResponse (false )
814+ .build ()) {
820815
821- try (QueryResponse response = client .query ("SELECT 1" ).get (1 , TimeUnit .SECONDS )) {
822- Assert .assertEquals (response .getReadBytes (), 10 );
823- } catch (Exception e ) {
824- Assert .fail ("Unexpected exception" , e );
816+ mockServer .addStubMapping (WireMock .post (WireMock .anyUrl ())
817+ .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken1 ))
818+ .willReturn (WireMock .aResponse ()
819+ .withHeader ("X-ClickHouse-Summary" ,
820+ "{ \" read_bytes\" : \" 10\" , \" read_rows\" : \" 1\" }" )).build ());
821+
822+ try (QueryResponse response = client .query ("SELECT 1" ).get (1 , TimeUnit .SECONDS )) {
823+ Assert .assertEquals (response .getReadBytes (), 10 );
824+ } catch (Exception e ) {
825+ Assert .fail ("Unexpected exception" , e );
826+ }
825827 }
826- }
827-
828- String jwtToken2 = Arrays .stream (
829- new String []{"header2" , "payload2" , "signature2" })
830- .map (s -> Base64 .getEncoder ().encodeToString (s .getBytes (StandardCharsets .UTF_8 )))
831- .reduce ((s1 , s2 ) -> s1 + "." + s2 ).get ();
832-
833- mockServer .resetAll ();
834- mockServer .addStubMapping (WireMock .post (WireMock .anyUrl ())
835- .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken1 ))
836- .willReturn (WireMock .aResponse ()
837- .withStatus (HttpStatus .SC_UNAUTHORIZED ))
838- .build ());
839828
840- try (Client client = new Client .Builder ().addEndpoint (Protocol .HTTP , "localhost" , mockServer .port (), false )
841- .useBearerTokenAuth (jwtToken1 )
842- .compressServerResponse (false )
843- .build ()) {
844-
845- try {
846- client .execute ("SELECT 1" ).get ();
847- fail ("Exception expected" );
848- } catch (ServerException e ) {
849- Assert .assertEquals (e .getTransportProtocolCode (), HttpStatus .SC_UNAUTHORIZED );
850- }
829+ String jwtToken2 = Arrays .stream (
830+ new String []{"header2" , "payload2" , "signature2" })
831+ .map (s -> Base64 .getEncoder ().encodeToString (s .getBytes (StandardCharsets .UTF_8 )))
832+ .reduce ((s1 , s2 ) -> s1 + "." + s2 ).get ();
851833
852834 mockServer .resetAll ();
853835 mockServer .addStubMapping (WireMock .post (WireMock .anyUrl ())
854- .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken2 ))
836+ .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken1 ))
855837 .willReturn (WireMock .aResponse ()
856- .withHeader ("X-ClickHouse-Summary" ,
857- "{ \" read_bytes\" : \" 10\" , \" read_rows\" : \" 1\" }" ))
858-
838+ .withStatus (HttpStatus .SC_UNAUTHORIZED ))
859839 .build ());
860840
861- client .updateBearerToken (jwtToken2 );
841+ try (Client client = new Client .Builder ().addEndpoint (Protocol .HTTP , "localhost" , mockServer .port (), false )
842+ .useBearerTokenAuth (jwtToken1 )
843+ .compressServerResponse (false )
844+ .build ()) {
845+
846+ try {
847+ client .execute ("SELECT 1" ).get ();
848+ fail ("Exception expected" );
849+ } catch (ServerException e ) {
850+ Assert .assertEquals (e .getTransportProtocolCode (), HttpStatus .SC_UNAUTHORIZED );
851+ }
852+
853+ mockServer .resetAll ();
854+ mockServer .addStubMapping (WireMock .post (WireMock .anyUrl ())
855+ .withHeader ("Authorization" , WireMock .equalTo ("Bearer " + jwtToken2 ))
856+ .willReturn (WireMock .aResponse ()
857+ .withHeader ("X-ClickHouse-Summary" ,
858+ "{ \" read_bytes\" : \" 10\" , \" read_rows\" : \" 1\" }" ))
859+
860+ .build ());
862861
863- client .execute ("SELECT 1" ).get ();
862+ client .updateBearerToken (jwtToken2 );
863+
864+ client .execute ("SELECT 1" ).get ();
865+ }
866+ } finally {
867+ mockServer .stop ();
864868 }
865869 }
866870}
0 commit comments