给定与服务相对应的URI,我想检索服务的注释(特别是@RolesAllowed)。
这里有个例子:
服务:
@GET
@Path("/example")
@RolesAllowed({ "BASIC_USER", "ADMIN" })
public Response foo() {
//Service implementation
}
给定字符串“ / example”,我想检索{“ BASIC_USER”,“ ADMIN”}。
我使用RestAssured进行测试,因此,如果可能的话,我更喜欢后者的解决方案。
谢谢。
最佳答案
我对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"));
}
关于java - 给定URI的注释检索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51782897/