1
我有一個Spring引導應用程序resteasy-spring-3.0.19和jboss-jaxrs-api_2.0_spec-1.0.0。Spring RestEasy攔截器
我想攔截所有其他的授權調用。
攔截器沒有被調用。另外,如何獲得攔截器中的目標方法@Path註釋值。
我是否需要在Spring啓動應用程序中註冊這個?
@Provider
public class AuthorizationtInterceptor implements ContainerRequestFilter{
/**
*
*/
public AuthorizationtInterceptor() {
// TODO Auto-generated constructor stub
}
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
String method = requestContext.getMethod();
UriInfo uriInfo = requestContext.getUriInfo();
// Need the target method @Path annotation value ....
}
}
目標休息級,
@Named
@Singleton
@Path(ROOT_PATH)
public class WebController {
@GET
@Path(TEST_PATH)
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@Context final HttpServletRequest request) {
}
}
它在註冊過濾器之後被調用,就好像我們在具有@Configuration註解的類中註冊其他過濾器一樣。 Path path = resourceInfo.getResourceClass()。getAnnotation(Path.class);返回類註解,而不是匹配的方法。我還需要HttpServletRequest,所以我使用上下文 私有的HttpServletRequest請求;這個可以嗎? – user1578872
@ user1578872是的,您可以使用'@Context HttpServletRequest請求'注入'HttpServletRequest'。有關可以使用'@ Context'注入的類型的完整列表,請參閱此[答案](http://stackoverflow.com/a/35868654/1426227)。 –