test-kafka-sasl-ssl.td 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. # ==> Set up. <==
  10. $ set-from-file ca-crt=/share/secrets/ca.crt
  11. $ set-from-file ca-selective-crt=/share/secrets/ca-selective.crt
  12. > CREATE SECRET password AS 'sekurity';
  13. > CREATE SECRET password_wrong AS 'wrong';
  14. $ kafka-create-topic topic=text-data
  15. $ kafka-ingest topic=text-data format=bytes
  16. banana
  17. # ==> Test invalid configurations. <==
  18. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  19. BROKER 'kafka:9096',
  20. SASL MECHANISMS 'PLAIN',
  21. SASL USERNAME 'materialize',
  22. SASL PASSWORD SECRET password,
  23. SECURITY PROTOCOL SASL_PLAINTEXT
  24. )
  25. contains:Disconnected during handshake; broker might require SSL encryption
  26. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  27. BROKER 'kafka:9096',
  28. SECURITY PROTOCOL SASL_SSL
  29. )
  30. contains:SASL MECHANISMS must be specified
  31. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  32. BROKER 'kafka:9096',
  33. SASL USERNAME 'materialize',
  34. SASL PASSWORD SECRET password,
  35. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  36. )
  37. contains:SASL MECHANISMS must be specified
  38. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  39. BROKER 'kafka:9096',
  40. SASL MECHANISMS 'PLAIN',
  41. SASL PASSWORD SECRET password
  42. )
  43. contains:SASL USERNAME must be specified
  44. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  45. BROKER 'kafka:9096',
  46. SASL MECHANISMS 'PLAIN',
  47. SASL USERNAME 'materialize',
  48. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  49. )
  50. contains:SASL PASSWORD must be specified
  51. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  52. BROKER 'kafka:9096',
  53. SASL MECHANISMS 'GSSAPI',
  54. SASL USERNAME 'materialize',
  55. SASL PASSWORD SECRET password,
  56. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  57. )
  58. contains:No provider for SASL mechanism GSSAPI
  59. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  60. BROKER 'kafka:9096',
  61. SASL MECHANISMS 'GARBAGE',
  62. SASL USERNAME 'materialize',
  63. SASL PASSWORD SECRET password,
  64. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  65. )
  66. contains:Unsupported SASL mechanism: GARBAGE
  67. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  68. BROKER 'kafka:9096',
  69. SASL MECHANISMS 'PLAIN',
  70. SASL USERNAME 'materialize',
  71. SASL PASSWORD SECRET password_wrong,
  72. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  73. )
  74. contains:Invalid username or password
  75. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  76. BROKER 'kafka:9096',
  77. SASL MECHANISMS 'PLAIN',
  78. SASL USERNAME 'materialize',
  79. SASL PASSWORD SECRET password
  80. )
  81. contains:Invalid CA certificate
  82. ! CREATE CONNECTION kafka_invalid TO KAFKA (
  83. BROKER 'kafka:9096',
  84. SASL MECHANISMS 'PLAIN',
  85. SASL USERNAME 'materialize',
  86. SASL PASSWORD SECRET password,
  87. SSL CERTIFICATE AUTHORITY = '${ca-selective-crt}'
  88. )
  89. contains:Invalid CA certificate
  90. # ==> Test without an SSH tunnel. <==
  91. > CREATE CONNECTION kafka_plain TO KAFKA (
  92. BROKER 'kafka:9096',
  93. SASL MECHANISMS 'PLAIN',
  94. SASL USERNAME 'materialize',
  95. SASL PASSWORD SECRET password,
  96. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  97. )
  98. > CREATE SOURCE text_data_plain FROM KAFKA CONNECTION kafka_plain (
  99. TOPIC 'testdrive-text-data-${testdrive.seed}'
  100. )
  101. > CREATE TABLE text_data_plain_tbl FROM SOURCE text_data_plain (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  102. > SELECT * FROM text_data_plain_tbl
  103. banana
  104. > CREATE CONNECTION kafka_scram_sha_256 TO KAFKA (
  105. BROKER 'kafka:9096',
  106. SASL MECHANISMS 'SCRAM-SHA-256',
  107. SASL USERNAME 'materialize',
  108. SASL PASSWORD SECRET password,
  109. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  110. )
  111. > CREATE SOURCE text_data_scram_sha_256 FROM KAFKA CONNECTION kafka_scram_sha_256 (
  112. TOPIC 'testdrive-text-data-${testdrive.seed}'
  113. )
  114. > CREATE TABLE text_data_scram_sha_256_tbl FROM SOURCE text_data_scram_sha_256 (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  115. > SELECT * FROM text_data_scram_sha_256_tbl
  116. banana
  117. > CREATE CONNECTION kafka_scram_sha_512 TO KAFKA (
  118. BROKER 'kafka:9096',
  119. SASL MECHANISMS 'SCRAM-SHA-512',
  120. SASL USERNAME 'materialize',
  121. SASL PASSWORD SECRET password,
  122. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  123. )
  124. > CREATE SOURCE text_data_scram_sha_512 FROM KAFKA CONNECTION kafka_scram_sha_512 (
  125. TOPIC 'testdrive-text-data-${testdrive.seed}'
  126. )
  127. > CREATE TABLE text_data_scram_sha_512_tbl FROM SOURCE text_data_scram_sha_512 (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  128. > SELECT * FROM text_data_scram_sha_256_tbl
  129. banana
  130. # ==> Test with an SSH tunnel. <==
  131. > CREATE CONNECTION kafka_ssh_plain TO KAFKA (
  132. BROKER 'kafka:9096' USING SSH TUNNEL testdrive_no_reset_connections.public.ssh,
  133. SASL MECHANISMS 'PLAIN',
  134. SASL USERNAME 'materialize',
  135. SASL PASSWORD SECRET password,
  136. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  137. )
  138. > CREATE SOURCE text_data_ssh_plain FROM KAFKA CONNECTION kafka_ssh_plain (
  139. TOPIC 'testdrive-text-data-${testdrive.seed}'
  140. )
  141. > CREATE TABLE text_data_ssh_plain_tbl FROM SOURCE text_data_ssh_plain (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  142. > SELECT * FROM text_data_ssh_plain_tbl
  143. banana
  144. > CREATE CONNECTION kafka_ssh_scram_sha_256 TO KAFKA (
  145. BROKER 'kafka:9096' USING SSH TUNNEL testdrive_no_reset_connections.public.ssh,
  146. SASL MECHANISMS 'SCRAM-SHA-256',
  147. SASL USERNAME 'materialize',
  148. SASL PASSWORD SECRET password,
  149. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  150. )
  151. > CREATE SOURCE text_data_ssh_scram_sha_256 FROM KAFKA CONNECTION kafka_ssh_scram_sha_256 (
  152. TOPIC 'testdrive-text-data-${testdrive.seed}'
  153. )
  154. > CREATE TABLE text_data_ssh_scram_sha_256_tbl FROM SOURCE text_data_ssh_scram_sha_256 (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  155. > SELECT * FROM text_data_ssh_scram_sha_256_tbl
  156. banana
  157. > CREATE CONNECTION kafka_ssh_scram_sha_512 TO KAFKA (
  158. BROKER 'kafka:9096' USING SSH TUNNEL testdrive_no_reset_connections.public.ssh,
  159. SASL MECHANISMS 'SCRAM-SHA-512',
  160. SASL USERNAME 'materialize',
  161. SASL PASSWORD SECRET password,
  162. SSL CERTIFICATE AUTHORITY '${ca-crt}'
  163. )
  164. > CREATE SOURCE text_data_ssh_scram_sha_512 FROM KAFKA CONNECTION kafka_ssh_scram_sha_512 (
  165. TOPIC 'testdrive-text-data-${testdrive.seed}'
  166. )
  167. > CREATE TABLE text_data_ssh_scram_sha_512_tbl FROM SOURCE text_data_ssh_scram_sha_512 (REFERENCE "testdrive-text-data-${testdrive.seed}") FORMAT TEXT
  168. > SELECT * FROM text_data_ssh_scram_sha_512_tbl
  169. banana