-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FEAT: AWS secret extension #3340
Changes from 52 commits
9b59ec1
43a52d7
fb9af26
f906fce
a3b4c24
2049066
250ae6f
b4f73d1
a05352e
e143fbb
79f20cf
50f8e0d
c56001b
12e9d32
0f6fbf2
bd2c0a6
1e2bdc9
d35cb90
5b98976
e1dec5b
51df8e3
d545390
bab025d
d7a057d
1081eb3
09c2146
3a84ff3
6527e07
b7c19f3
7b29f73
0204d4d
0c2c6dc
c785db6
9153a21
88942aa
6955a3b
1722ad9
535befa
1f80214
07a1f99
267cc4b
dfc7cc4
81dcda8
9576a4e
c574957
4f932a3
01e2f94
fbba530
ed47582
472c502
784a8e2
b47911e
8b99927
d065938
b642ee5
af0664b
7054ca1
8f90fe0
73a265d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package org.opensearch.dataprepper.model.plugin; | ||
|
||
public interface PluginConfigValueTranslator { | ||
String translate(final String value); | ||
|
||
String getPrefix(); | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ dependencies { | |
implementation project(':data-prepper-expression') | ||
implementation project(':data-prepper-plugins:blocking-buffer') | ||
implementation project(':data-prepper-plugins:common') | ||
implementation project(':data-prepper-plugins:aws-plugin') | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Data Prepper core should not depend on There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the catch! It is unnecessary |
||
implementation project(':data-prepper-logstash-configuration') | ||
testImplementation project(':data-prepper-plugins:common').sourceSets.test.output | ||
implementation 'com.fasterxml.jackson.core:jackson-databind' | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package org.opensearch.dataprepper.plugin; | ||
|
||
import com.fasterxml.jackson.core.JsonParser; | ||
import com.fasterxml.jackson.databind.DeserializationContext; | ||
import com.fasterxml.jackson.databind.JsonDeserializer; | ||
|
||
import java.io.IOException; | ||
|
||
public class DataPrepperScalarTypeDeserializer<T> extends JsonDeserializer<T> { | ||
private final VariableExpander variableExpander; | ||
private final Class<T> scalarType; | ||
|
||
public DataPrepperScalarTypeDeserializer(final VariableExpander variableExpander, final Class<T> scalarType) { | ||
this.variableExpander = variableExpander; | ||
this.scalarType = scalarType; | ||
} | ||
|
||
@Override | ||
public T deserialize(final JsonParser jsonParser, final DeserializationContext ctxt) throws IOException { | ||
return variableExpander.translate(jsonParser, this.scalarType); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package org.opensearch.dataprepper.plugin; | ||
|
||
import com.fasterxml.jackson.core.JsonParser; | ||
import com.fasterxml.jackson.databind.BeanProperty; | ||
import com.fasterxml.jackson.databind.DeserializationContext; | ||
import com.fasterxml.jackson.databind.JsonDeserializer; | ||
import com.fasterxml.jackson.databind.deser.ContextualDeserializer; | ||
import com.fasterxml.jackson.databind.deser.std.StringDeserializer; | ||
import org.opensearch.dataprepper.model.plugin.PluginConfigValueTranslator; | ||
|
||
import java.io.IOException; | ||
import java.lang.annotation.Annotation; | ||
|
||
public class DataPrepperStringContextualDeserializer extends JsonDeserializer<String> implements ContextualDeserializer { | ||
|
||
private final PluginConfigValueTranslator pluginConfigValueTranslator; | ||
|
||
public DataPrepperStringContextualDeserializer(final PluginConfigValueTranslator pluginConfigValueTranslator) { | ||
this.pluginConfigValueTranslator = pluginConfigValueTranslator; | ||
} | ||
|
||
@Override | ||
public JsonDeserializer<String> createContextual(final DeserializationContext ctxt, final BeanProperty property) { | ||
final Annotation annotation = property.getAnnotation(SupportSecretString.class); | ||
if (annotation != null) { | ||
return this; | ||
} else { | ||
return new StringDeserializer(); | ||
} | ||
} | ||
|
||
@Override | ||
public String deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { | ||
return pluginConfigValueTranslator.translate(p.getText()); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should return a generic type as it can vary.