public List<SecurityScheme> securedBy(Action action) { final List<SecurityScheme> res = new ArrayList<>(); if (!action.getSecuredBy().isEmpty()) { res.addAll(securitySchemes(action.getSecuredBy(), new Message("securityScheme.undefined", new Locator(action)))); } else if (!action.getResource().getSecuredBy().isEmpty()) { res.addAll(securitySchemes(action.getResource().getSecuredBy(), new Message("securityScheme.undefined", new Locator(action.getResource())))); } else if (!raml.getSecuredBy().isEmpty()) { res.addAll(securitySchemes(raml.getSecuredBy(), new Message("securityScheme.undefined", new Locator()))); } if (res.isEmpty()) { res.add(NULL_SCHEMA); } return res; }
@Override public Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) throws STNoSuchPropertyException { final Action a = (Action) o; switch (propertyName) { case "securitySchemes": if (a.getSecuredBy() != null && !a.getSecuredBy().isEmpty()) { return a.getSecuredBy(); } if (a.getResource().getSecuredBy() != null && !a.getResource().getSecuredBy().isEmpty()) { return a.getResource().getSecuredBy(); } if (raml.getSecuredBy() != null && !raml.getSecuredBy().isEmpty()) { return raml.getSecuredBy(); } return Collections.emptyList(); case "type": return a.getType().toString(); case "responses": return new TreeMap<>(a.getResponses()); case "queryParameters": return new TreeMap<>(a.getQueryParameters()); case "headers": return new TreeMap<>(a.getHeaders()); case "body": return a.getBody() == null ? null : new TreeMap<>(a.getBody()); default: return super.getProperty(interp, self, o, property, propertyName); } } }
Action action = resource.getAction(ActionType.GET); AssertJUnit.assertNotNull("RAML default controller has no get action", action); List<SecurityReference> secRef = action.getSecuredBy(); AssertJUnit.assertNotNull("RAML has no default security reference list", secRef); AssertJUnit.assertTrue("RAML default controller has a security reference", secRef.size() == 0); action = resource.getAction(ActionType.POST); AssertJUnit.assertNotNull("RAML twoscope controller has no get action", action); secRef = action.getSecuredBy(); AssertJUnit.assertNotNull("RAML has no twoscope security reference list", secRef); AssertJUnit.assertTrue("RAML twoscope controller get does not have a security reference", secRef.size() == 1); secRef = action.getSecuredBy(); AssertJUnit.assertNotNull("RAML has no twoscope security reference list", secRef); AssertJUnit.assertTrue("RAML twoscope controller get does not have a security reference", secRef.size() == 1);
final List<SecurityReference> directSecuredBy = source.getSecuredBy();