@@ -12,7 +12,7 @@ import org.scalatest.Assertion
12
12
import org .scalatest .diagrams .Diagrams
13
13
import org .scalatest .wordspec .AnyWordSpecLike
14
14
15
- import scala .concurrent .ExecutionContext
15
+ import scala .concurrent .{ ExecutionContext , TimeoutException }
16
16
17
17
class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with EmbeddedKafka {
18
18
@@ -58,7 +58,7 @@ class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with Embe
58
58
Thread .sleep(2000 )
59
59
createCustomTopic(createEventsTopic)
60
60
apr.createLineageFromRequest(
61
- fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeObject" ), userSTS, remoteClientIP)
61
+ fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeObject" ).withHeaders( RawHeader ( " User-Agent " , " aws-cli/1.16.68 Python/2.7 " )) , userSTS, remoteClientIP)
62
62
val message = consumeFirstStringMessageFrom(createEventsTopic)
63
63
assert(message.contains(" external_object_in/fakeObject" ))
64
64
}
@@ -69,7 +69,7 @@ class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with Embe
69
69
withRunningKafka {
70
70
Thread .sleep(2000 )
71
71
apr.createLineageFromRequest(
72
- fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeTags" ).withHeaders(RawHeader (" rokku-metadata" , " k1=v1" )), userSTS, remoteClientIP)
72
+ fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeTags" ).withHeaders(RawHeader (" rokku-metadata" , " k1=v1" ), RawHeader ( " User-Agent " , " aws-cli/1.16.68 Python/2.7 " ) ), userSTS, remoteClientIP)
73
73
val message = consumeFirstStringMessageFrom(createEventsTopic)
74
74
assert(message.contains(" {\" awsTags\" :[{\" attributes\" :{\" key\" :\" k1\" ,\" value\" :\" v1\" },\" typeName\" :\" aws_tag\" }]" ))
75
75
}
@@ -80,7 +80,7 @@ class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with Embe
80
80
withRunningKafka {
81
81
Thread .sleep(2000 )
82
82
apr.createLineageFromRequest(
83
- fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeTags" ).withHeaders(RawHeader (" rokku-classifications" , " customerPII,secret" )), userSTS, remoteClientIP)
83
+ fakeIncomingHttpRequest(HttpMethods .PUT , " /fakeBucket/fakeTags" ).withHeaders(RawHeader (" rokku-classifications" , " customerPII,secret" ), RawHeader ( " User-Agent " , " aws-cli/1.16.68 Python/2.7 " ) ), userSTS, remoteClientIP)
84
84
val message = consumeFirstStringMessageFrom(createEventsTopic)
85
85
assert(message.contains(" \" classifications\" :[{\" typeName\" :\" customerPII\" },{\" typeName\" :\" secret\" }]" ))
86
86
}
@@ -91,7 +91,7 @@ class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with Embe
91
91
withRunningKafka {
92
92
Thread .sleep(2000 )
93
93
apr.createLineageFromRequest(
94
- fakeIncomingHttpRequest(HttpMethods .GET , " /fakeBucket/fakeObject" ), userSTS, remoteClientIP)
94
+ fakeIncomingHttpRequest(HttpMethods .GET , " /fakeBucket/fakeObject" ).withHeaders( RawHeader ( " User-Agent " , " aws-cli/1.16.68 Python/2.7 " )) , userSTS, remoteClientIP)
95
95
val message = consumeFirstStringMessageFrom(createEventsTopic)
96
96
assert(message.contains(" external_object_out/fakeObject" ))
97
97
}
@@ -102,10 +102,20 @@ class LineageProviderAtlasItTest extends AnyWordSpecLike with Diagrams with Embe
102
102
withRunningKafka {
103
103
Thread .sleep(2000 )
104
104
apr.createLineageFromRequest(
105
- fakeIncomingHttpRequest(HttpMethods .DELETE , " /fakeBucket/fakeObject" ), userSTS, remoteClientIP)
105
+ fakeIncomingHttpRequest(HttpMethods .DELETE , " /fakeBucket/fakeObject" )withHeaders( RawHeader ( " User-Agent " , " aws-cli/1.16.68 Python/2.7 " )) , userSTS, remoteClientIP)
106
106
val message = consumeFirstStringMessageFrom(createEventsTopic)
107
107
assert(message.contains(" fakeObject" ))
108
108
}
109
109
}
110
+
111
+ " time out exception because the user agent is not whitelisted" in withLineageProviderAtlas() { apr =>
112
+ implicit val config = EmbeddedKafkaConfig (kafkaPort = testKafkaPort)
113
+ withRunningKafka {
114
+ Thread .sleep(2000 )
115
+ apr.createLineageFromRequest(
116
+ fakeIncomingHttpRequest(HttpMethods .DELETE , " /fakeBucket/fakeObject" )withHeaders(RawHeader (" User-Agent" , " no-aws-cli/1.16.68 Python/2.7" )), userSTS, remoteClientIP)
117
+ assertThrows[TimeoutException ](consumeFirstStringMessageFrom(createEventsTopic))
118
+ }
119
+ }
110
120
}
111
121
}
0 commit comments