Skip to content

Commit ab4b701

Browse files
author
Joffry Ferrater
committed
Fix request model
1 parent 48664b2 commit ab4b701

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

abac-pep-spring-security/src/main/java/com/github/joffryferrater/pep/security/AbacMethodSecurityExpressionRoot.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.joffryferrater.pep.security;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
34
import com.github.joffryferrater.pep.client.PdpClient;
45
import com.github.joffryferrater.request.AccessSubjectCategory;
56
import com.github.joffryferrater.request.ActionCategory;
@@ -45,7 +46,11 @@ public boolean hasAccessToResource(String attributeId, List<Object> values) {
4546
LOGGER.debug("Entering hasAccessToResource(attributeId={},values={}", attributeId, values);
4647
final Request request = getAllCategoriesRequest(attributeId, values);
4748
try {
48-
final Response pdpResponse = pdpClient.sendXacmlJsonRequest(new XacmlRequest(request));
49+
final XacmlRequest xacmlRequest = new XacmlRequest(request);
50+
ObjectMapper objectMapper = new ObjectMapper();
51+
final String valueAsString = objectMapper.writeValueAsString(xacmlRequest);
52+
LOGGER.debug(valueAsString);
53+
final Response pdpResponse = pdpClient.sendXacmlJsonRequest(xacmlRequest);
4954
return isPermitted(pdpResponse);
5055
} catch (IOException e) {
5156
LOGGER.error(e.getMessage());
@@ -54,19 +59,19 @@ public boolean hasAccessToResource(String attributeId, List<Object> values) {
5459
}
5560

5661
private Request getAllCategoriesRequest(String attributeId, List<Object> values) {
57-
ResourceCategory resourceCategory = createResourceCategoryRequest(attributeId, values);
5862
Request request = new Request();
63+
ResourceCategory resourceCategory = createResourceCategoryRequest(attributeId, values);
5964
List<ResourceCategory> resourceCategories = new ArrayList<>();
6065
resourceCategories.add(resourceCategory);
61-
final Optional<List<AccessSubjectCategory>> accessSubjectCategories = addAccessSubjectCategoryRequest();
62-
accessSubjectCategories.ifPresent(request::setAccessSubjectCategory);
6366
final Optional<List<ResourceCategory>> optionalResourceCategories = addResourceCategoryRequest();
6467
optionalResourceCategories.ifPresent(resourceCategories::addAll);
6568
request.setResourceCategory(resourceCategories);
6669
final Optional<List<ActionCategory>> actionCategories = addActionCategoryRequest();
6770
actionCategories.ifPresent(request::setActionCategory);
6871
final Optional<List<EnvironmentCategory>> environmentCategories = addEnvironmentCategoryRequest();
6972
environmentCategories.ifPresent(request::setEnvironmentCategory);
73+
final Optional<List<AccessSubjectCategory>> accessSubjectCategories = addAccessSubjectCategoryRequest();
74+
accessSubjectCategories.ifPresent(request::setAccessSubjectCategory);
7075
return request;
7176
}
7277

xacml-resource-models/src/main/java/com/github/joffryferrater/request/Request.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ public class Request {
2727
@JsonProperty(ACTION)
2828
private List<ActionCategory> actionCategory = new ArrayList<>();
2929

30-
@JsonProperty(RESOURCE)
30+
@JsonProperty(ENVIRONMENT)
3131
private List<EnvironmentCategory> environmentCategory = new ArrayList<>();
3232

33-
@JsonProperty(ENVIRONMENT)
33+
@JsonProperty(RESOURCE)
3434
private List<ResourceCategory> resourceCategory = new ArrayList<>();
3535

3636
public List<AccessSubjectCategory> getAccessSubjectCategory() {
@@ -39,30 +39,30 @@ public List<AccessSubjectCategory> getAccessSubjectCategory() {
3939

4040
public void setAccessSubjectCategory(
4141
List<AccessSubjectCategory> accessSubjectCategory) {
42-
this.accessSubjectCategory = accessSubjectCategory;
42+
this.accessSubjectCategory = new ArrayList<>(accessSubjectCategory);
4343
}
4444

4545
public List<ActionCategory> getActionCategory() {
4646
return actionCategory;
4747
}
4848

4949
public void setActionCategory(List<ActionCategory> actionCategory) {
50-
this.actionCategory = actionCategory;
50+
this.actionCategory = new ArrayList<>(actionCategory);
5151
}
5252

5353
public List<EnvironmentCategory> getEnvironmentCategory() {
5454
return environmentCategory;
5555
}
5656

5757
public void setEnvironmentCategory(List<EnvironmentCategory> environmentCategory) {
58-
this.environmentCategory = environmentCategory;
58+
this.environmentCategory = new ArrayList<>(environmentCategory);
5959
}
6060

6161
public List<ResourceCategory> getResourceCategory() {
6262
return resourceCategory;
6363
}
6464

6565
public void setResourceCategory(List<ResourceCategory> resourceCategory) {
66-
this.resourceCategory = resourceCategory;
66+
this.resourceCategory = new ArrayList<>(resourceCategory);
6767
}
6868
}

0 commit comments

Comments
 (0)