Skip to content

Commit ed49224

Browse files
authored
Add param binding error check in auth scheme resolution to avoid panic (#619)
1 parent 0e0b20c commit ed49224

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/auth/AuthParametersResolverGenerator.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ public GoWriter.Writable generate() {
4343
loadResolvers();
4444

4545
return goTemplate("""
46-
func $name:L(ctx $context:T, operation string, input interface{}, options Options) $params:P {
46+
func $name:L(ctx $context:T, operation string, input interface{}, options Options) ($params:P, error) {
4747
params := &$params:T{
4848
Operation: operation,
4949
}
5050
5151
$bindings:W
52-
53-
return params
52+
53+
return params, nil
5454
}
5555
""",
5656
MapUtils.of(
@@ -64,7 +64,11 @@ public GoWriter.Writable generate() {
6464
private GoWriter.Writable generateResolvers() {
6565
return (writer) -> {
6666
for (var resolver: resolvers) {
67-
writer.write("$T(ctx, params, input, options)", resolver.resolver());
67+
writer.write("""
68+
if err := $T(ctx, params, input, options); err != nil {
69+
return nil, err
70+
}
71+
""", resolver.resolver());
6872
}
6973
};
7074
}

codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/auth/ResolveAuthSchemeMiddlewareGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ private GoWriter.Writable generateBody() {
7070
_, span := $3T(ctx, "ResolveAuthScheme")
7171
defer span.End()
7272
73-
params := $1L(ctx, m.operation, getOperationInput(ctx), m.options)
73+
params, err := $1L(ctx, m.operation, getOperationInput(ctx), m.options)
74+
if err != nil {
75+
return out, metadata, $2T("bind auth scheme params: %w", err)
76+
}
7477
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
7578
if err != nil {
7679
return out, metadata, $2T("resolve auth scheme: %w", err)

0 commit comments

Comments
 (0)