resteasy-spring-3.0.19とjboss-jaxrs-api_2.0_spec-1.0.0のSpringブートアプリケーションがあります。Spring RestEasyインターセプタ
私は残りのすべての許可を傍受したいと思います。
インターセプタが呼び出されていません。また、どのようにしてインターセプタのターゲットメソッド@Pathアノテーション値を取得できますか?
これはSpringブートアプリケーションに登録する必要がありますか?ポストマッチングフィルタ(@PreMatching
注釈なしフィルタ)で
@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アノテーションを持つクラスの他のフィルタを登録するかのように、フィルタを登録した後に呼び出されています。パスパス= resourceInfo.getResourceClass()。getAnnotation(Path.class);一致するメソッドではなく、クラスアノテーションを返します。私もHttpServletRequestが必要なので、私はコンテキスト プライベートHttpServletRequest要求;を使用します。これでいい? – user1578872
@ user1578872はい、 '@Context HttpServletRequest request'を使って' HttpServletRequest'を注入することができます。 '@ Context'で注入できるタイプの完全なリストについては、この[answer](http://stackoverflow.com/a/35868654/1426227)を参照してください。 –