Skip to content

Commit f19b740

Browse files
authored
Fix auth-behaviour (#186)
- There was wierd behaviour regarding the auth and saving and handling of username/password since it was used by ldap aswell. Broke their names apart. If password was not updated from the user request, it would have been removed without this update. - Changed interfaces so that ldapUserName and userName is seperated. - Fixed tests
1 parent b51e60e commit f19b740

File tree

15 files changed

+240
-159
lines changed

15 files changed

+240
-159
lines changed

src/functionaltests/java/com/ericsson/ei/subscriptions/bulk/SubscriptionBulkSteps.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
package com.ericsson.ei.subscriptions.bulk;
22

3-
import com.ericsson.ei.controller.model.GetSubscriptionResponse;
4-
import com.ericsson.ei.utils.FunctionalTestBase;
5-
import com.ericsson.ei.utils.HttpRequest;
6-
import com.ericsson.ei.utils.HttpRequest.HttpMethod;
7-
import com.fasterxml.jackson.databind.ObjectMapper;
3+
import static org.junit.Assert.assertEquals;
4+
5+
import java.io.File;
86

9-
import cucumber.api.java.en.Given;
10-
import cucumber.api.java.en.Then;
11-
import cucumber.api.java.en.When;
127
import org.apache.commons.io.FileUtils;
138
import org.json.JSONArray;
149
import org.json.JSONObject;
@@ -17,9 +12,15 @@
1712
import org.springframework.http.ResponseEntity;
1813
import org.springframework.test.context.TestPropertySource;
1914

20-
import java.io.File;
15+
import com.ericsson.ei.controller.model.GetSubscriptionResponse;
16+
import com.ericsson.ei.utils.FunctionalTestBase;
17+
import com.ericsson.ei.utils.HttpRequest;
18+
import com.ericsson.ei.utils.HttpRequest.HttpMethod;
19+
import com.fasterxml.jackson.databind.ObjectMapper;
2120

22-
import static org.junit.Assert.assertEquals;
21+
import cucumber.api.java.en.Given;
22+
import cucumber.api.java.en.Then;
23+
import cucumber.api.java.en.When;
2324

2425
@Ignore
2526
@TestPropertySource(properties = {"logging.level.com.ericsson.ei.subscriptions.bulk=DEBUG"})
@@ -138,7 +139,7 @@ public void retrieved_subscriptions_are_same_as_given() throws Throwable {
138139
retrievedSubscriptions.getJSONObject(i).get("notificationType"));
139140
assertEquals(subscriptions.getJSONObject(i).get("notificationMeta"),
140141
retrievedSubscriptions.getJSONObject(i).get("notificationMeta"));
141-
assertEquals(true, retrievedSubscriptions.getJSONObject(i).has("userName"));
142+
assertEquals(true, retrievedSubscriptions.getJSONObject(i).has("ldapUserName"));
142143
}
143144
}
144145
}

src/functionaltests/java/com/ericsson/ei/subscriptions/trigger/SubscriptionTriggerSteps.java

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package com.ericsson.ei.subscriptions.trigger;
22

3-
import com.dumbster.smtp.SimpleSmtpServer;
4-
import com.dumbster.smtp.SmtpMessage;
5-
import com.ericsson.ei.utils.FunctionalTestBase;
6-
import com.ericsson.ei.utils.HttpRequest;
7-
import cucumber.api.java.After;
8-
import cucumber.api.java.Before;
9-
import cucumber.api.java.en.Given;
10-
import cucumber.api.java.en.Then;
11-
import cucumber.api.java.en.When;
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertTrue;
5+
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
6+
import static org.mockserver.model.HttpRequest.request;
7+
import static org.mockserver.model.HttpResponse.response;
8+
9+
import java.io.File;
10+
import java.io.IOException;
11+
import java.util.ArrayList;
12+
import java.util.Arrays;
13+
import java.util.List;
14+
import java.util.concurrent.TimeUnit;
15+
1216
import org.apache.commons.io.FileUtils;
1317
import org.json.JSONArray;
1418
import org.json.JSONException;
@@ -26,18 +30,16 @@
2630
import org.springframework.mail.javamail.JavaMailSenderImpl;
2731
import org.springframework.util.SocketUtils;
2832

29-
import java.io.File;
30-
import java.io.IOException;
31-
import java.util.ArrayList;
32-
import java.util.Arrays;
33-
import java.util.List;
34-
import java.util.concurrent.TimeUnit;
33+
import com.dumbster.smtp.SimpleSmtpServer;
34+
import com.dumbster.smtp.SmtpMessage;
35+
import com.ericsson.ei.utils.FunctionalTestBase;
36+
import com.ericsson.ei.utils.HttpRequest;
3537

36-
import static org.junit.Assert.assertEquals;
37-
import static org.junit.Assert.assertTrue;
38-
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
39-
import static org.mockserver.model.HttpRequest.request;
40-
import static org.mockserver.model.HttpResponse.response;
38+
import cucumber.api.java.After;
39+
import cucumber.api.java.Before;
40+
import cucumber.api.java.en.Given;
41+
import cucumber.api.java.en.Then;
42+
import cucumber.api.java.en.When;
4143

4244
@Ignore
4345
public class SubscriptionTriggerSteps extends FunctionalTestBase {
@@ -276,7 +278,7 @@ private void setupRestEndpoints() {
276278
mockClient = new MockServerClient(getHostName(), port);
277279
mockClient.when(request().withMethod("POST").withPath(REST_ENDPOINT)).respond(response().withStatusCode(201));
278280
mockClient.when(request().withMethod("POST").withPath(REST_ENDPOINT_AUTH)
279-
.withHeader("Authorization", "Basic TXkgbW90aGVyIGhhcyAyIGNhdHMgYW5kIHRoZXkgYXJlIGNyYXp5"))
281+
.withHeader("Authorization", "Basic bXlVc2VyTmFtZTpteVBhc3N3b3Jk"))
280282
.respond(response().withStatusCode(201));
281283
mockClient.when(request().withMethod("POST").withPath(REST_ENDPOINT_PARAMS))
282284
.respond(response().withStatusCode(201));

src/functionaltests/resources/subscription_multiple.json

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[
22
{
33
"subscriptionName": "Subscription_Mail",
4-
"userName": "DEF",
4+
"ldapUserName": "DEF",
55
"repeat": false,
66
"created": "data-time",
77
"notificationType": "MAIL",
@@ -32,7 +32,7 @@
3232
},
3333
{
3434
"subscriptionName": "Subscription_Rest_Params_in_Head",
35-
"userName": "DEF",
35+
"ldapUserName": "DEF",
3636
"repeat": false,
3737
"created": "data-time",
3838
"notificationType": "REST_POST",
@@ -63,7 +63,10 @@
6363
},
6464
{
6565
"subscriptionName": "Subscription_Rest_Auth_Params_in_Head",
66-
"userName": "DEF",
66+
"ldapUserName": "DEF",
67+
"userName": "myUserName",
68+
"password": "myPassword",
69+
"authenticationType": "BASIC_AUTH",
6770
"repeat": false,
6871
"created": "data-time",
6972
"notificationType": "REST_POST",
@@ -74,10 +77,6 @@
7477
{
7578
"formkey" : "json",
7679
"formvalue" : "{parameter: [{ id: testCaseExecutions[0].outcome.id, value : testCaseExecutions[0].outcome.conclusion }]}"
77-
},
78-
{
79-
"formkey" : "Authorization",
80-
"formvalue" : "Basic TXkgbW90aGVyIGhhcyAyIGNhdHMgYW5kIHRoZXkgYXJlIGNyYXp5"
8180
}
8281
],
8382

@@ -101,7 +100,7 @@
101100
},
102101
{
103102
"subscriptionName": "Subscription_Rest_Params_in_Url",
104-
"userName": "DEF",
103+
"ldapUserName": "DEF",
105104
"repeat": false,
106105
"created": "data-time",
107106
"notificationType": "REST_POST",
@@ -126,7 +125,7 @@
126125
},
127126
{
128127
"subscriptionName": "Subscription_Rest_Auth_Params_in_Url",
129-
"userName": "DEF",
128+
"ldapUserName": "DEF",
130129
"repeat": false,
131130
"created": "data-time",
132131
"notificationType": "REST_POST",
@@ -152,7 +151,7 @@
152151
},
153152
{
154153
"subscriptionName": "Subscription_Row_Body",
155-
"userName": "DEF",
154+
"ldapUserName": "DEF",
156155
"repeat": false,
157156
"created": "data-time",
158157
"notificationType": "REST_POST",

src/main/java/com/ericsson/ei/controller/SubscriptionController.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import java.util.List;
55
import javax.validation.Valid;
6-
import com.ericsson.ei.controller.model.GetSubscriptionResponse;
76
import org.springframework.http.ResponseEntity;
87
import org.springframework.web.bind.annotation.PathVariable;
98
import org.springframework.web.bind.annotation.RequestBody;
@@ -34,20 +33,20 @@ public interface SubscriptionController {
3433
*
3534
*/
3635
@RequestMapping(value = "", method = RequestMethod.POST)
37-
public ResponseEntity<List<com.ericsson.ei.controller.model.SubscriptionResponse>> createSubscription(
36+
public ResponseEntity<List<String>> createSubscription(
3837
@Valid
3938
@RequestBody
40-
List<com.ericsson.ei.controller.model.Subscription> subscription);
39+
List<String> string);
4140

4241
/**
4342
* Modify existing Subscriptions.
4443
*
4544
*/
4645
@RequestMapping(value = "", method = RequestMethod.PUT)
47-
public ResponseEntity<List<com.ericsson.ei.controller.model.SubscriptionResponse>> updateSubscriptions(
46+
public ResponseEntity<List<String>> updateSubscriptions(
4847
@Valid
4948
@RequestBody
50-
List<com.ericsson.ei.controller.model.Subscription> subscription);
49+
List<String> string);
5150

5251
/**
5352
* Returns the subscriptions for the given subscription names.
@@ -56,15 +55,15 @@ public ResponseEntity<List<com.ericsson.ei.controller.model.SubscriptionResponse
5655
@RequestMapping(value = "/{subscriptionNames}", method = RequestMethod.GET)
5756
public ResponseEntity<GetSubscriptionResponse> getSubscriptionById(
5857
@PathVariable
59-
String subscriptionNames);
58+
java.lang.String subscriptionNames);
6059

6160
/**
6261
* Removes the subscriptions from the database for the given subscription names.
6362
*
6463
*/
6564
@RequestMapping(value = "/{subscriptionNames}", method = RequestMethod.DELETE)
66-
public ResponseEntity<List<com.ericsson.ei.controller.model.SubscriptionResponse>> deleteSubscriptionById(
65+
public ResponseEntity<List<String>> deleteSubscriptionById(
6766
@PathVariable
68-
String subscriptionNames);
67+
java.lang.String subscriptionNames);
6968

7069
}

src/main/java/com/ericsson/ei/controller/SubscriptionControllerImpl.java

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616
*/
1717
package com.ericsson.ei.controller;
1818

19-
import com.ericsson.ei.config.HttpSessionConfig;
20-
import com.ericsson.ei.controller.model.GetSubscriptionResponse;
21-
import com.ericsson.ei.controller.model.Subscription;
22-
import com.ericsson.ei.controller.model.SubscriptionResponse;
23-
import com.ericsson.ei.exception.SubscriptionNotFoundException;
24-
import com.ericsson.ei.services.ISubscriptionService;
25-
import com.ericsson.ei.subscriptionhandler.SubscriptionValidator;
26-
import io.swagger.annotations.Api;
27-
import io.swagger.annotations.ApiOperation;
19+
import java.time.Instant;
20+
import java.util.ArrayList;
21+
import java.util.Arrays;
22+
import java.util.HashMap;
23+
import java.util.HashSet;
24+
import java.util.List;
25+
import java.util.Map;
26+
import java.util.Set;
27+
2828
import org.slf4j.Logger;
2929
import org.slf4j.LoggerFactory;
3030
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,8 +36,16 @@
3636
import org.springframework.web.bind.annotation.PathVariable;
3737
import org.springframework.web.bind.annotation.RequestBody;
3838

39-
import java.time.Instant;
40-
import java.util.*;
39+
import com.ericsson.ei.config.HttpSessionConfig;
40+
import com.ericsson.ei.controller.model.GetSubscriptionResponse;
41+
import com.ericsson.ei.controller.model.Subscription;
42+
import com.ericsson.ei.controller.model.SubscriptionResponse;
43+
import com.ericsson.ei.exception.SubscriptionNotFoundException;
44+
import com.ericsson.ei.services.ISubscriptionService;
45+
import com.ericsson.ei.subscriptionhandler.SubscriptionValidator;
46+
47+
import io.swagger.annotations.Api;
48+
import io.swagger.annotations.ApiOperation;
4149

4250
@Component
4351
@CrossOrigin
@@ -73,7 +81,7 @@ public ResponseEntity<List<SubscriptionResponse>> createSubscription(@RequestBod
7381
subscriptionValidator.validateSubscription(subscription);
7482

7583
if (!subscriptionService.doSubscriptionExist(subscriptionName)) {
76-
subscription.setUserName(user);
84+
subscription.setLdapUserName(user);
7785
subscription.setCreated(Instant.now().toEpochMilli());
7886
subscriptionService.addSubscription(subscription);
7987
LOG.debug("Subscription is created successfully: " + subscriptionName);
@@ -101,7 +109,11 @@ public ResponseEntity<GetSubscriptionResponse> getSubscriptionById(@PathVariable
101109
subscriptionNamesList.forEach(subscriptionName -> {
102110
try {
103111
LOG.debug("Subscription fetching has been started: " + subscriptionName);
104-
foundSubscriptionList.add(subscriptionService.getSubscription(subscriptionName));
112+
113+
//Make sure the password is not sent outside this service.
114+
Subscription subscription = subscriptionService.getSubscription(subscriptionName);
115+
subscription.setPassword("");
116+
foundSubscriptionList.add(subscription);
105117
LOG.debug("Subscription is fetched: " + subscriptionName);
106118
} catch (SubscriptionNotFoundException e) {
107119
LOG.error("Subscription is not found: " + subscriptionName);
@@ -132,7 +144,7 @@ public ResponseEntity<List<SubscriptionResponse>> updateSubscriptions(@RequestBo
132144
subscriptionValidator.validateSubscription(subscription);
133145

134146
if (subscriptionService.doSubscriptionExist(subscriptionName)) {
135-
subscription.setUserName(user);
147+
subscription.setLdapUserName(user);
136148
subscription.setCreated(Instant.now().toEpochMilli());
137149
subscriptionService.modifySubscription(subscription, subscriptionName);
138150
LOG.debug("Subscription updating is completed: " + subscriptionName);
@@ -174,7 +186,13 @@ public ResponseEntity<List<SubscriptionResponse>> deleteSubscriptionById(@PathVa
174186
public ResponseEntity<?> getSubscriptions() {
175187
LOG.debug("Subscriptions fetching all has been started");
176188
try {
177-
return new ResponseEntity<>(subscriptionService.getSubscriptions(), HttpStatus.OK);
189+
//Make sure the password is not sent outside this service.
190+
List<Subscription> subscriptions = subscriptionService.getSubscriptions();
191+
for(Subscription subscription: subscriptions) {
192+
subscription.setPassword("");
193+
}
194+
195+
return new ResponseEntity<>(subscriptions, HttpStatus.OK);
178196
} catch (SubscriptionNotFoundException e) {
179197
LOG.info(e.getMessage(), e);
180198
return new ResponseEntity<>(new ArrayList<>(), HttpStatus.OK);

src/main/java/com/ericsson/ei/controller/model/Subscription.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626
"repeat",
2727
"requirements",
2828
"subscriptionName",
29-
"userName"
29+
"userName",
30+
"password",
31+
"ldapUserName"
3032
})
3133
public class Subscription {
3234

@@ -50,6 +52,10 @@ public class Subscription {
5052
private String subscriptionName;
5153
@JsonProperty("userName")
5254
private String userName;
55+
@JsonProperty("password")
56+
private String password;
57+
@JsonProperty("ldapUserName")
58+
private String ldapUserName;
5359
@JsonIgnore
5460
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
5561

@@ -153,6 +159,26 @@ public void setUserName(String userName) {
153159
this.userName = userName;
154160
}
155161

162+
@JsonProperty("password")
163+
public String getPassword() {
164+
return password;
165+
}
166+
167+
@JsonProperty("password")
168+
public void setPassword(String password) {
169+
this.password = password;
170+
}
171+
172+
@JsonProperty("ldapUserName")
173+
public String getLdapUserName() {
174+
return ldapUserName;
175+
}
176+
177+
@JsonProperty("ldapUserName")
178+
public void setLdapUserName(String ldapUserName) {
179+
this.ldapUserName = ldapUserName;
180+
}
181+
156182
@Override
157183
public String toString() {
158184
return ToStringBuilder.reflectionToString(this);
@@ -170,7 +196,7 @@ public void setAdditionalProperty(String name, Object value) {
170196

171197
@Override
172198
public int hashCode() {
173-
return new HashCodeBuilder().append(aggregationtype).append(created).append(notificationMeta).append(notificationType).append(restPostBodyMediaType).append(notificationMessageKeyValues).append(repeat).append(requirements).append(subscriptionName).append(userName).append(additionalProperties).toHashCode();
199+
return new HashCodeBuilder().append(aggregationtype).append(created).append(notificationMeta).append(notificationType).append(restPostBodyMediaType).append(notificationMessageKeyValues).append(repeat).append(requirements).append(subscriptionName).append(userName).append(password).append(ldapUserName).append(additionalProperties).toHashCode();
174200
}
175201

176202
@Override
@@ -182,7 +208,7 @@ public boolean equals(Object other) {
182208
return false;
183209
}
184210
Subscription rhs = ((Subscription) other);
185-
return new EqualsBuilder().append(aggregationtype, rhs.aggregationtype).append(created, rhs.created).append(notificationMeta, rhs.notificationMeta).append(notificationType, rhs.notificationType).append(restPostBodyMediaType, rhs.restPostBodyMediaType).append(notificationMessageKeyValues, rhs.notificationMessageKeyValues).append(repeat, rhs.repeat).append(requirements, rhs.requirements).append(subscriptionName, rhs.subscriptionName).append(userName, rhs.userName).append(additionalProperties, rhs.additionalProperties).isEquals();
211+
return new EqualsBuilder().append(aggregationtype, rhs.aggregationtype).append(created, rhs.created).append(notificationMeta, rhs.notificationMeta).append(notificationType, rhs.notificationType).append(restPostBodyMediaType, rhs.restPostBodyMediaType).append(notificationMessageKeyValues, rhs.notificationMessageKeyValues).append(repeat, rhs.repeat).append(requirements, rhs.requirements).append(subscriptionName, rhs.subscriptionName).append(userName, rhs.userName).append(password, rhs.password).append(ldapUserName, rhs.ldapUserName).append(additionalProperties, rhs.additionalProperties).isEquals();
186212
}
187213

188214
}

0 commit comments

Comments
 (0)