这里是我的拦截器方法,我想在这里设置自定义响应,告诉UI发生了什么
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request.getSession(false);
if (session != null)
return true;
else{
response.sendError(HttpServletResponse.SC_REQUEST_TIMEOUT)
return false;
}
}
并且在web.xml中
<error-page>
<error-code>408</error-code>
<location>/error.html</location>
</error-page>
spring-servlet.xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/login" />
<bean class="com.example.CustomInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
当会话超时时,它在返回false后不发送任何响应。连下面的都不行
response.sendRedirect("http://localhost:8080/home");
你可以尝试非常简单的事情。将mvc:interceptros
结构更改为
<mvc:interceptors>
<bean class="com.example.CustomInterceptor" />
</mvc:interceptors>
这实质上意味着将拦截器应用于所有适用的请求。我一会儿就来解释为什么我说适用一会儿。如果上面的工作,那么问题是与您的映射。
如您所知,拦截器是在handlermapping
级别上配置的,在您的情况下,它将是requestmappinghandlermapping
(spring 3.1+带有mvc:annotation-drived
)或defaultanotationhandlermapping
。
现在,正如您所使用的
将映射到所有请求(包括子路径),只要它们是有效的映射。假设你有控制器
@RequestMapping(value="/home", method = RequestMethod.GET)
public String welcome() {
return "welcome";
}
您不能命中http://localhost:8080/yourprojectname/home/test
并期望它命中拦截器。因此,您必须点击http://localhost:8080/yourprojectname/home
,因为这是一个有效的handlermapping。
如果拦截器受到任何请求的攻击,则首先进行调试。如果它真的起作用
response.sendError(HttpServletResponse.SC_REQUEST_TIMEOUT);
应该将您重定向到error.html
<error-page>
<error-code>408</error-code>
<location>/error.html</location>
</error-page>
null 我尝试将@priority(interceptor.priority.platform_beform)和@prematching也放入我的过滤器中,但即使是在OIDC启动后也会调用。 另外,是否有任何方法支持扩展quarkus oidc逻辑以包括自定义代码? 我无法获得oidc和keycloak-auth拦截器的优先级(知道这些可以帮助我决定过滤器的优先级)。请帮忙。
我想添加spring mvc拦截器作为Java配置的一部分。我已经有了一个基于xml的配置,但是我正在尝试使用Java的配置。对于拦截器,我从spring的文档中知道可以这样做- 但我的拦截器使用了一个spring豆,就像下面这样- SomeService类如下所示- 我使用这样的注释来扫描bean,并且没有在配置类中将它们指定为 根据我的理解,由于Java配置使用new来创建对象,所以sprin
我想对spring boot rest-api应用程序做一些端到端测试。使用spring mock MVC实现这个im。但是我无法得到200响应,因为rest api正在使用自定义的安全拦截器来验证请求中的令牌。相反,我一直得到401作为回应。如何在我的测试中包含此令牌验证? 这是我的拦截课
在RestTemplate中,我有一个自定义拦截器,它将记录一些请求-响应详细信息并保存到数据库。 我的自定义拦截器: springboot中的RestTemboard bean配置: 将拦截器添加到restTemboard bean: 如何将此拦截器添加到佯装客户端? 正在应用中。yml: InterceptorOne为假装客户端中的每个请求添加标头: 但是我不能添加日志服务拦截器,因为它由于错
我正在研究spring data rest服务&在自定义拦截器方面面临一些问题。前面我使用了spring-data-rest-webmvc2.2.0&以以下方式添加了拦截器。 对我来说效果很好。但是当我升级到spring-data-rest-webmvc 2.3.0版本时,我注意到handlerMapping隐藏在DelegatingHandlerMapping后面。因此,我尝试以以下方式添加拦截
我有一个Flume组件在监听Syslog流。我做了一个自定义的拦截器来修改调用,但它不起作用。我做错了什么?谢谢你,Andrea 拦截器是一个编译良好的JAR文件,位于@FLUME_HOME/bin目录中 系统将事件记录在文件中而不修改它们,这是相关的DEBUG日志: