我有这个 Jax-rs 服务接口:
@GET
@Path("{id: ^((?!_ah).)*$}")
@Produces(MediaType.TEXT_HTML)
public Response getStuff(@PathParam("id") String id, @Context HttpHeaders headers,
@Context UriInfo uriInfo, @Context SecurityContext securityContext);
此接口的目标是捕获所有字符序列,除了:
_ah/foo
_ah/foo/bar
或者任何开始_ah
我尝试了正则表达式:http ://rubular.com/
从看起来它按预期工作。但是我现在的问题是,当我访问一个所谓的绕过路径时,我得到了这个:
Could not find resource for relative : /_ah/admin of full path: http://127.0.0.1:8888/_ah/admin
我的应用在 GAE 上运行,所以在开发模式下运行时,这个 _ah 路径用于servlet
SDK 运行时的管理。
我错过了什么?不是@Path过滤器不匹配的时候会绕过吗?那我为什么会遇到Cannot find resource
问题?
如果我不说:path@Path("{id: ^((?!_ah).)*$}")
下的 servlet工作正常。_ah
是不是_ah
已经绕过了路径,应该可以再次访问了?