Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc OAuth2与仅方法@RequestMapping的交互错误_Spring Mvc_Spring Security_Spring Security Oauth2 - Fatal编程技术网

Spring mvc OAuth2与仅方法@RequestMapping的交互错误

Spring mvc OAuth2与仅方法@RequestMapping的交互错误,spring-mvc,spring-security,spring-security-oauth2,Spring Mvc,Spring Security,Spring Security Oauth2,在实现SpringSecurity的OAuth2时,我很难让任何端点响应我。当发布到/oauth/token时,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping告诉我不允许发布。我最终在选项请求映射中找到了罪魁祸首: @RequestMapping(method = RequestMethod.OPTIONS) public void systemOptions() { } 注释

在实现SpringSecurity的OAuth2时,我很难让任何端点响应我。当发布到/oauth/token时,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping告诉我不允许发布。我最终在选项请求映射中找到了罪魁祸首:

@RequestMapping(method = RequestMethod.OPTIONS)
public void systemOptions() { }
注释的HandlerMapping最终无法找到精确匹配,并放松了约束以提供有用的“无直接匹配,但您可以更改媒体类型或HTTP方法”类型异常。这很好,但这个HandlerMapping抛出的异常是阻止DispatcherServlet继续处理其他HandlerMappings—其中一个是OAuth2 FrameworkMappings(这是我希望它首先映射到的)

My systemOptions()方法作为RequestMapping存在,只是为了支持来自浏览器的CORS选项请求——我有另一个过滤器,它将适当的CORS相关头添加到所有请求中


我现在的选择似乎非常激烈,在我进入这一深层次之前,我希望得到一些社区的意见。我是否应该完全在过滤器内处理CORS选项请求?我应该改变我的手柄的顺序吗?有没有更好的方法来处理CORS选项请求?

我认为现在大多数人对CORS头使用
过滤器(尽管Spring 4.2应该有一些更细粒度的支持)。如果我说问题出在
RequestMappingHandlerMapping
上,那么我会向Stackoverflow询问这个问题,或者向JIRA提出问题,如果我是你的话,同时使用
过滤器


注意,这在我看来不是一个真正的OAuth问题。也许可以在标签中添加“spring mvc”?

好的方面。我将使用
过滤器
而不是
请求映射
,并按照您的建议标记此问题。