Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Commit 8157e46

Browse files
authored
Move user instantiation to doExecute (#343)
1 parent 039ece9 commit 8157e46

9 files changed

+17
-25
lines changed

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportDeleteDestinationAction.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ class TransportDeleteDestinationAction @Inject constructor(
6363
) {
6464

6565
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
66-
private var user: User? = null
6766

6867
init {
6968
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -72,7 +71,7 @@ class TransportDeleteDestinationAction @Inject constructor(
7271
override fun doExecute(task: Task, request: DeleteDestinationRequest, actionListener: ActionListener<DeleteResponse>) {
7372
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
7473
log.debug("User and roles string from thread context: $userStr")
75-
user = User.parse(userStr)
74+
val user: User? = User.parse(userStr)
7675
val deleteRequest = DeleteRequest(ScheduledJob.SCHEDULED_JOBS_INDEX, request.destinationId)
7776
.setRefreshPolicy(request.refreshPolicy)
7877

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportDeleteMonitorAction.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class TransportDeleteMonitorAction @Inject constructor(
6161
) {
6262

6363
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
64-
private var user: User? = null
6564

6665
init {
6766
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -70,7 +69,7 @@ class TransportDeleteMonitorAction @Inject constructor(
7069
override fun doExecute(task: Task, request: DeleteMonitorRequest, actionListener: ActionListener<DeleteResponse>) {
7170
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
7271
log.debug("User and roles string from thread context: $userStr")
73-
user = User.parse(userStr)
72+
val user: User? = User.parse(userStr)
7473
val deleteRequest = DeleteRequest(ScheduledJob.SCHEDULED_JOBS_INDEX, request.monitorId)
7574
.setRefreshPolicy(request.refreshPolicy)
7675

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportExecuteMonitorAction.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,11 @@ class TransportExecuteMonitorAction @Inject constructor(
4141
) : HandledTransportAction<ExecuteMonitorRequest, ExecuteMonitorResponse> (
4242
ExecuteMonitorAction.NAME, transportService, actionFilters, ::ExecuteMonitorRequest) {
4343

44-
private var user: User? = null
45-
4644
override fun doExecute(task: Task, execMonitorRequest: ExecuteMonitorRequest, actionListener: ActionListener<ExecuteMonitorResponse>) {
4745

4846
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
4947
log.debug("User and roles string from thread context: $userStr")
50-
user = User.parse(userStr)
48+
val user: User? = User.parse(userStr)
5149

5250
client.threadPool().threadContext.stashContext().use {
5351
val executeMonitor = fun(monitor: Monitor) {

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportGetAlertsAction.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ class TransportGetAlertsAction @Inject constructor(
6464
) {
6565

6666
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
67-
private var user: User? = null
6867

6968
init {
7069
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -79,7 +78,7 @@ class TransportGetAlertsAction @Inject constructor(
7978
ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT
8079
)
8180
log.debug("User and roles string from thread context: $userStr")
82-
user = User.parse(userStr)
81+
val user: User? = User.parse(userStr)
8382

8483
val tableProp = getAlertsRequest.table
8584
val sortBuilder = SortBuilders
@@ -118,13 +117,14 @@ class TransportGetAlertsAction @Inject constructor(
118117
.from(tableProp.startIndex)
119118

120119
client.threadPool().threadContext.stashContext().use {
121-
resolve(searchSourceBuilder, actionListener)
120+
resolve(searchSourceBuilder, actionListener, user)
122121
}
123122
}
124123

125124
fun resolve(
126125
searchSourceBuilder: SearchSourceBuilder,
127-
actionListener: ActionListener<GetAlertsResponse>
126+
actionListener: ActionListener<GetAlertsResponse>,
127+
user: User?
128128
) {
129129
// user is null when: 1/ security is disabled. 2/when user is super-admin.
130130
if (user == null) {

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportGetDestinationsAction.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ class TransportGetDestinationsAction @Inject constructor(
6767
) {
6868

6969
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
70-
private var user: User? = null
7170

7271
init {
7372
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -82,7 +81,7 @@ class TransportGetDestinationsAction @Inject constructor(
8281
ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT
8382
)
8483
log.debug("User and roles string from thread context: $userStr")
85-
user = User.parse(userStr)
84+
val user: User? = User.parse(userStr)
8685

8786
val tableProp = getDestinationsRequest.table
8887

@@ -120,13 +119,14 @@ class TransportGetDestinationsAction @Inject constructor(
120119
searchSourceBuilder.query(queryBuilder)
121120

122121
client.threadPool().threadContext.stashContext().use {
123-
resolve(searchSourceBuilder, actionListener)
122+
resolve(searchSourceBuilder, actionListener, user)
124123
}
125124
}
126125

127126
fun resolve(
128127
searchSourceBuilder: SearchSourceBuilder,
129-
actionListener: ActionListener<GetDestinationsResponse>
128+
actionListener: ActionListener<GetDestinationsResponse>,
129+
user: User?
130130
) {
131131
if (user == null) {
132132
// user is null when: 1/ security is disabled. 2/when user is super-admin.

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportGetMonitorAction.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ class TransportGetMonitorAction @Inject constructor(
5959
) {
6060

6161
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
62-
private var user: User? = null
6362

6463
init {
6564
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -68,7 +67,7 @@ class TransportGetMonitorAction @Inject constructor(
6867
override fun doExecute(task: Task, getMonitorRequest: GetMonitorRequest, actionListener: ActionListener<GetMonitorResponse>) {
6968
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
7069
log.debug("User and roles string from thread context: $userStr")
71-
user = User.parse(userStr)
70+
val user: User? = User.parse(userStr)
7271

7372
val getRequest = GetRequest(ScheduledJob.SCHEDULED_JOBS_INDEX, getMonitorRequest.monitorId)
7473
.version(getMonitorRequest.version)

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportIndexDestinationAction.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ class TransportIndexDestinationAction @Inject constructor(
6060
@Volatile private var indexTimeout = AlertingSettings.INDEX_TIMEOUT.get(settings)
6161
@Volatile private var allowList = DestinationSettings.ALLOW_LIST.get(settings)
6262
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
63-
private var user: User? = null
6463

6564
init {
6665
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.INDEX_TIMEOUT) { indexTimeout = it }
@@ -71,7 +70,7 @@ class TransportIndexDestinationAction @Inject constructor(
7170
override fun doExecute(task: Task, request: IndexDestinationRequest, actionListener: ActionListener<IndexDestinationResponse>) {
7271
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
7372
log.debug("User and roles string from thread context: $userStr")
74-
user = User.parse(userStr)
73+
val user: User? = User.parse(userStr)
7574

7675
if (!checkFilterByUserBackendRoles(filterByEnabled, user, actionListener)) {
7776
return

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportIndexMonitorAction.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ class TransportIndexMonitorAction @Inject constructor(
9393
@Volatile private var maxActionThrottle = MAX_ACTION_THROTTLE_VALUE.get(settings)
9494
@Volatile private var allowList = ALLOW_LIST.get(settings)
9595
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
96-
var user: User? = null
9796

9897
init {
9998
clusterService.clusterSettings.addSettingsUpdateConsumer(ALERTING_MAX_MONITORS) { maxMonitors = it }
@@ -108,7 +107,7 @@ class TransportIndexMonitorAction @Inject constructor(
108107

109108
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
110109
log.debug("User and roles string from thread context: $userStr")
111-
user = User.parse(userStr)
110+
val user: User? = User.parse(userStr)
112111

113112
if (!checkFilterByUserBackendRoles(filterByEnabled, user, actionListener)) {
114113
return

alerting/src/main/kotlin/com/amazon/opendistroforelasticsearch/alerting/transport/TransportSearchMonitorAction.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ class TransportSearchMonitorAction @Inject constructor(
4747
SearchMonitorAction.NAME, transportService, actionFilters, ::SearchMonitorRequest
4848
) {
4949
@Volatile private var filterByEnabled = AlertingSettings.FILTER_BY_BACKEND_ROLES.get(settings)
50-
private var user: User? = null
5150

5251
init {
5352
clusterService.clusterSettings.addSettingsUpdateConsumer(AlertingSettings.FILTER_BY_BACKEND_ROLES) { filterByEnabled = it }
@@ -56,14 +55,14 @@ class TransportSearchMonitorAction @Inject constructor(
5655
override fun doExecute(task: Task, searchMonitorRequest: SearchMonitorRequest, actionListener: ActionListener<SearchResponse>) {
5756
val userStr = client.threadPool().threadContext.getTransient<String>(ConfigConstants.OPENDISTRO_SECURITY_USER_INFO_THREAD_CONTEXT)
5857
log.debug("User and roles string from thread context: $userStr")
59-
user = User.parse(userStr)
58+
val user: User? = User.parse(userStr)
6059

6160
client.threadPool().threadContext.stashContext().use {
62-
resolve(searchMonitorRequest, actionListener)
61+
resolve(searchMonitorRequest, actionListener, user)
6362
}
6463
}
6564

66-
fun resolve(searchMonitorRequest: SearchMonitorRequest, actionListener: ActionListener<SearchResponse>) {
65+
fun resolve(searchMonitorRequest: SearchMonitorRequest, actionListener: ActionListener<SearchResponse>, user: User?) {
6766
if (user == null) {
6867
// user header is null when: 1/ security is disabled. 2/when user is super-admin.
6968
search(searchMonitorRequest.searchRequest, actionListener)

0 commit comments

Comments
 (0)