4242import org .apache .shiro .authz .annotation .RequiresPermissions ;
4343import org .graylog .integrations .audit .IntegrationsAuditEventTypes ;
4444import org .graylog .integrations .aws .AWSPermissions ;
45+ import org .graylog .integrations .aws .inputs .AWSInput ;
4546import org .graylog .integrations .aws .resources .requests .AWSInputCreateRequest ;
4647import org .graylog .integrations .aws .resources .requests .AWSRequestImpl ;
4748import org .graylog .integrations .aws .resources .requests .KinesisRequest ;
@@ -89,7 +90,7 @@ public AWSResource(AWSService awsService, KinesisService kinesisService, CloudWa
8990 @ Timed
9091 @ Path ("/regions" )
9192 @ Operation (summary = "Get all available AWS regions" )
92- @ RequiresPermissions (AWSPermissions .AWS_READ )
93+ @ RequiresPermissions ({ AWSPermissions .AWS_READ , RestPermissions . INPUTS_CREATE , RestPermissions . INPUT_TYPES_CREATE + ":" + AWSInput . TYPE } )
9394 public RegionsResponse getAwsRegions () {
9495 return awsService .getAvailableRegions ();
9596 }
@@ -98,7 +99,7 @@ public RegionsResponse getAwsRegions() {
9899 @ Timed
99100 @ Path ("/cloudwatch/log_groups" )
100101 @ Operation (summary = "Get all available AWS CloudWatch log groups names for the specified region." )
101- @ RequiresPermissions (AWSPermissions .AWS_READ )
102+ @ RequiresPermissions ({ AWSPermissions .AWS_READ , RestPermissions . INPUTS_CREATE , RestPermissions . INPUT_TYPES_CREATE + ":" + AWSInput . TYPE } )
102103 @ NoAuditEvent ("This does not change any data" )
103104 public LogGroupsResponse getLogGroupNames (@ RequestBody (required = true ) @ Valid @ NotNull AWSRequestImpl request ) {
104105 return cloudWatchService .getLogGroupNames (request );
@@ -108,7 +109,7 @@ public LogGroupsResponse getLogGroupNames(@RequestBody(required = true) @Valid @
108109 @ Timed
109110 @ Path ("/kinesis/streams" )
110111 @ Operation (summary = "Get all available Kinesis streams for the specified region." )
111- @ RequiresPermissions (AWSPermissions .AWS_READ )
112+ @ RequiresPermissions ({ AWSPermissions .AWS_READ , RestPermissions . INPUTS_CREATE , RestPermissions . INPUT_TYPES_CREATE + ":" + AWSInput . TYPE } )
112113 @ NoAuditEvent ("This does not change any data" )
113114 public StreamsResponse getKinesisStreams (@ RequestBody (required = true ) @ Valid @ NotNull AWSRequestImpl request ) throws ExecutionException {
114115 return kinesisService .getKinesisStreamNames (request );
@@ -118,7 +119,7 @@ public StreamsResponse getKinesisStreams(@RequestBody(required = true) @Valid @N
118119 @ Timed
119120 @ Path ("/kinesis/stream_arn" )
120121 @ Operation (summary = "Get stream ARN for the specified stream and region." )
121- @ RequiresPermissions (AWSPermissions .AWS_READ )
122+ @ RequiresPermissions ({ AWSPermissions .AWS_READ , RestPermissions . INPUTS_CREATE , RestPermissions . INPUT_TYPES_CREATE + ":" + AWSInput . TYPE } )
122123 @ NoAuditEvent ("This does not change any data" )
123124 public Response getStreamArn (@ RequestBody (required = true ) @ Valid @ NotNull KinesisRequest request ) {
124125 String response ;
@@ -140,7 +141,7 @@ public Response getStreamArn(@RequestBody(required = true) @Valid @NotNull Kines
140141 @ ApiResponse (responseCode = "202" , description = "AWS log retrieval health check completed successfully" ,
141142 content = @ Content (schema = @ Schema (implementation = KinesisHealthCheckResponse .class )))
142143 })
143- @ RequiresPermissions (AWSPermissions .AWS_READ )
144+ @ RequiresPermissions ({ AWSPermissions .AWS_READ , RestPermissions . INPUTS_CREATE , RestPermissions . INPUT_TYPES_CREATE + ":" + AWSInput . TYPE } )
144145 @ NoAuditEvent ("This does not change any data" )
145146 public Response kinesisHealthCheck (@ RequestBody (required = true ) @ Valid @ NotNull KinesisRequest heathCheckRequest ) throws ExecutionException , IOException {
146147
@@ -153,7 +154,7 @@ public Response kinesisHealthCheck(@RequestBody(required = true) @Valid @NotNull
153154 @ Path ("/inputs" )
154155 @ Operation (summary = "Create a new AWS input." )
155156 @ AuditEvent (type = IntegrationsAuditEventTypes .KINESIS_INPUT_CREATE )
156- @ RequiresPermissions ({RestPermissions .INPUTS_CREATE , RestPermissions .INPUT_TYPES_CREATE + ":org.graylog.integrations.aws.inputs.AWSInput" })
157+ @ RequiresPermissions ({RestPermissions .INPUTS_CREATE , RestPermissions .INPUT_TYPES_CREATE + ":" + AWSInput . TYPE })
157158 public Response create (@ Parameter @ QueryParam ("setup_wizard" ) @ DefaultValue ("false" ) boolean isSetupWizard ,
158159 @ RequestBody (required = true )
159160 @ Valid @ NotNull AWSInputCreateRequest saveRequest ) throws Exception {
0 commit comments