Spring mvc OAuth2与仅方法@RequestMapping的交互错误
在实现SpringSecurity的OAuth2时,我很难让任何端点响应我。当发布到/oauth/token时,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping告诉我不允许发布。我最终在选项请求映射中找到了罪魁祸首: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() { } 注释
@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”?好的方面。我将使用过滤器
而不是请求映射
,并按照您的建议标记此问题。