289 m.addAttribute(HttpCodeView.CODE, HttpStatus.NOT_FOUND);
290 return HttpCodeView.VIEWNAME;
293 if (!rs.getOwner().equals(auth.getName())) {
294 logger.warn(
"Unauthorized resource set request from bad user; expected " + rs.getOwner() +
" got " + auth.getName());
297 m.addAttribute(HttpCodeView.CODE, HttpStatus.FORBIDDEN);
298 return HttpCodeView.VIEWNAME;
301 Policy p =
gson.fromJson(jsonString, Policy.class);
303 if (!pid.equals(p.getId())) {
304 logger.warn(
"Policy ID mismatch, expected " + pid +
" got " + p.getId());
306 m.addAttribute(HttpCodeView.CODE, HttpStatus.BAD_REQUEST);
307 return HttpCodeView.VIEWNAME;
310 for (Policy policy : rs.getPolicies()) {
311 if (policy.getId().equals(pid)) {
315 Set<Long> claimIds =
new HashSet<>();
316 for (Claim claim : policy.getClaimsRequired()) {
317 claimIds.add(claim.getId());
320 for (Claim claim : p.getClaimsRequired()) {
321 if (claim.getId() != null && !claimIds.contains(claim.getId())) {
322 logger.warn(
"Tried to add a policy with a an unmatched claim ID: got " + claim.getId() +
" expected " + claimIds);
323 m.addAttribute(HttpCodeView.CODE, HttpStatus.BAD_REQUEST);
324 return HttpCodeView.VIEWNAME;
329 policy.setClaimsRequired(p.getClaimsRequired());
330 policy.setName(p.getName());
331 policy.setScopes(p.getScopes());
335 m.addAttribute(JsonEntityView.ENTITY, policy);
336 return JsonEntityView.VIEWNAME;
341 m.addAttribute(HttpCodeView.CODE, HttpStatus.NOT_FOUND);
342 return HttpCodeView.VIEWNAME;
ResourceSet update(ResourceSet oldRs, ResourceSet newRs)
ResourceSetService resourceSetService
Definition: PolicyAPI.java:68
Gson gson
Definition: PolicyAPI.java:65
ResourceSet getById(Long id)
static final Logger logger
Definition: PolicyAPI.java:60