在给定与服务相对应的URI的情况下,我想检索服务的注释(尤其是@RolesAllowed)。 这里是一个例子:
服务:
@GET
@Path("/example")
@RolesAllowed({ "BASIC_USER", "ADMIN" })
public Response foo() {
//Service implementation
}
给定字符串“ / example”,我想检索{“ BASIC_USER”,“ ADMIN”}。
我使用RestAssured进行测试,因此,如果可能的话,我更喜欢后者的解决方案。 谢谢。
答案 0 :(得分:1)
我对RestAssured并不熟悉,但是我编写了以下Junit测试,它可以工作。也许您可以使其适应RestAssured。
首先服务:
public class Service {
@GET
@Path("/example")
@RolesAllowed({ "BASIC_USER", "ADMIN" })
public Response foo() {
return new Response();
}
}
这是相应的Junit测试:
@Test
public void testFooRoles() throws Exception {
Method method = Service.class.getMethod("foo");
Annotation path = method.getDeclaredAnnotation(javax.ws.rs.Path.class);
assertTrue(((Path) path).value().equals("/example"));
RolesAllowed annotation = method.getDeclaredAnnotation(RolesAllowed.class);
List<String> roles = Arrays.asList(annotation.value());
assertEquals(2, roles.size());
assertTrue(roles.contains("BASIC_USER"));
assertTrue(roles.contains("ADMIN"));
}