gpt4 book ai didi

java - 自定义 servlet 过滤器谷歌端点

转载 作者:行者123 更新时间:2023-11-30 11:24:29 24 4
gpt4 key购买 nike

我尝试调用我的过滤器,但它似乎被忽略了。所以我有两个问题:1. 带有 google 端点的 servlete 过滤器的配置看起来如何?2. 使用 slf4j 进行日志记录(jdk 日志记录作为后端)应该在过滤器类中正常工作 - 我猜?

web.xml 中的配置:

<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>myCoolFilter</filter-name>
<filter-class>com.example.MyCoolFilterClass</filter-class>
</filter>
<filter-mapping>
<filter-name>myCoolFilter</filter-name>
<url-pattern>/_ah/spi/endpoint-api-name/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>ServiceServlce</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>com.example.MyCoolEndpoint</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServiceServlce</servlet-name>
<url-pattern>/_ah/spi/endpoint-api-name/*</url-pattern>
</servlet-mapping>

最佳答案

我找到的唯一解决方案是将过滤器添加为通用过滤器 (/*​​) 并处理检查请求 URI:

HttpServletRequest httpRequest = (HttpServletRequest) req;
String requestURI = httpRequest.getRequestURI();
log.info("request uri " + requestURI);
if (!requestURI.toLowerCase().contains("endpoint-api-name")) {
chain.doFilter(req, resp);
return;
}

值得注意的是,我还尝试在过滤器声明中使用 servlet-name - 但没有结果。我让过滤器工作的唯一方法是通过/* url-pattern。

关于java - 自定义 servlet 过滤器谷歌端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com