gpt4 book ai didi

Spring WebMVC : interceptor which has access to the method definition and the HttpServletRequest

转载 作者:行者123 更新时间:2023-12-01 15:21:39 24 4
gpt4 key购买 nike

我正在尝试拦截带注释的 Spring Controller 调用,类似于:

@RequestMapping("/my/page")
@AccessRestriction(module = Module.Audit, action = AuditActions.Log)
public ModelAndView myPage() {
// pls type teh codez
}

此时我想访问 @AccessRestriction 方法的值、HttpServletRequest 对象以检查值是否与限制匹配以及 HttpServletResponse 对象,以便发送重定向(如果适用)。能够抛出异常也可能是合适的。

我调查了 Interceptors但他们不提供对方法的访问,只提供处理程序。我有哪些选择可以实现这一目标?

最佳答案

我的建议是分离这两个问题,一个是检查注释并抛出异常,另一个是捕获该异常并将其转化为重定向。

第一个问题可以使用 Auto-proxy facility 来完成,这会将 AOP 样式的拦截器应用于 Controller 对象上的任何调用。他们会检查注解,验证调用,并在违反条件时抛出自定义 RuntimeException

然后您可以有一个自定义的 HandlerInterceptor,它在 afterCompletion 方法中检查此异常,如果存在则通过响应对象发送重定向。

关于 Spring WebMVC : interceptor which has access to the method definition and the HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194787/

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