当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-Interceptor:仅在GET请求中排除路径

安毅
2023-03-14

我正在做一个Java Spring项目,我们编写了一个用于安全性的拦截器。这个类实现了WebMvcConfigurer,我们重写了addInterceptors方法:

@Override
public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SecurityInterceptor(aService, sService))
                .excludePathPatterns("/", "/ping", "/resc")
        }

共有1个答案

蒙墨竹
2023-03-14

InterceptorRegistration不为您的目的提供任何方法。但我认为有一种方法可以达到你的行为。您可以自动连接ApplicationContext。而不是在拦截器中执行以下操作:

try {
  RequestMappingHandlerMapping req2HandlerMapping = (RequestMappingHandlerMapping)applicationContext.getBean("requestMappingHandlerMapping");
  HandlerExecutionChain handlerExeChain = req2HandlerMapping.getHandler(request);
  if (Objects.nonNull(handlerExeChain)) {
     Method method = ((HandlerMethod) handlerExeChain.getHandler()).getMethod();
     if (!method.isAnnotationPresent(GetMapping.class)) {
       //Provide your Security Checks here.
     }
} catch (Exception e) {
  //provide some Error Code
}

如果您也想检查一个特定的路径。例如,您的“/resc”可以使用附加的if很好地检查es。

 类似资料:
  • 当我试图通过邮递员发送时,我有一个请求正在正常工作。我试图实现相同的使用代码,我面临一个错误。 我正在使用的代码- 我得到的错误是- org.springframework.web.client.HttpClientErr异常$未授权: 401未授权 但《邮递员》中同样的作品也有同样的细节。 我想说明一下 后端API不在我手里。 clientid,clientSecret,access_token

  • 向传递的 URL 发出一个 GET 请求。 使用 XMLHttpRequest web API 向给定的 url 发出 get 请求。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第四个参数 err ,默认将错误记录到控制台的 error 流。 const httpGet = (url,

  • 我需要在andoid应用程序发送超文本传输协议获取请求。 清单 然后我按下发送请求按钮,应用程序崩溃。 日志 2020-06-08 13:37:58.8327039-7039/com。实例远程E/AndroidRuntime:致命异常:主进程:com。实例远程,PID:7039 java。lang.IllegalStateException:无法在androidx上为android:onClick

  • 我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强

  • 我有一个小型spring应用程序,如下所示: 我已经生成了这个应用程序的一个jar,并将其停靠,如下所示: 然后运行下面的命令运行docker容器 问题是,当我这样做我得到一个错误说: org.springframework.web.请求方法'GET'不支持 然而,当我在本地运行spring应用程序(不停靠它)并从JMeter发送请求时,请求成功发送。 我做错了什么?

  • 问题内容: 我需要在JavaScript中执行HTTPGET请求。最好的方法是什么? 我需要在Mac OS X破折号小部件中执行此操作。 问题答案: 浏览器(和Dashcode)提供XMLHttpRequest对象,该对象可用于从JavaScript发出HTTP请求: 但是,不鼓励同步请求,并且将按照以下方式生成警告: 注意:从Gecko 30.0(Firefox 30.0 / Thunderbi