125 if (
params.getResources() == null ||
params.getResources().isEmpty()) {
126 throw new ErrorResponseException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT);
128 if (!
org.
xdi.
oxd.rs.protect.ResourceValidator.isHttpMethodUniqueInPath(
params.getResources())) {
129 throw new ErrorResponseException(ErrorResponseCode.UMA_HTTP_METHOD_NOT_UNIQUE);
131 if (
params.getResources() != null){
132 for (RsResource resource :
params.getResources()) {
133 if (resource.getConditions() != null) {
134 for (Condition condition : resource.getConditions()) {
135 if (condition.getScopeExpression() != null) {
136 String json = condition.getScopeExpression().toString();
137 if (StringUtils.isNotBlank(json)) {
138 boolean nodeValid = JsonLogicNodeParser.isNodeValid(json);
139 LOG.trace(
"Scope expression validator - Valid: " + nodeValid +
", expression: " + json);
141 throw new ErrorResponseException(ErrorResponseCode.UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION);
151 List<UmaResource> existingUmaResources = rp.getUmaProtectedResources();
152 if (existingUmaResources != null && !existingUmaResources.isEmpty()) {
153 if (
params.getOverwrite() == null || !
params.getOverwrite()) {
154 throw new ErrorResponseException(ErrorResponseCode.UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS);
158 UmaResourceService resourceService = UmaClientFactory.instance().createResourceService(discovery,
getHttpService().getClientExecutor());
161 for (UmaResource resource : existingUmaResources) {
162 LOG.trace(
"Removing existing resource " + resource.getId() +
" ...");
163 resourceService.deleteResource(
"Bearer " + pat, resource.getId());
164 LOG.trace(
"Removed existing resource " + resource.getId() +
".");
166 rp.getUmaProtectedResources().clear();
HttpService getHttpService()
Definition: BaseOperation.java:72
UmaTokenService getUmaTokenService()
Definition: BaseOperation.java:100
void updateSilently(Rp rp)
Definition: RpService.java:126
DiscoveryService getDiscoveryService()
Definition: BaseOperation.java:96
RpService getRpService()
Definition: BaseOperation.java:104
static final Logger LOG
Definition: RsProtectOperation.java:42
Rp getRp()
Definition: BaseOperation.java:117
final T params
Definition: BaseOperation.java:40