Spring oauth2 oauth / token http 405错误不支持POST方法

时间:2015-09-06 04:59:23

标签: spring security spring-security-oauth2

我在tomcat 8(linux)上遇到oauth / token的HTTP 405错误,而其他POST请求工作正常。

上面的问题没有出现在windows localhost tomcat 8上。

任何线索??

由于

3 个答案:

答案 0 :(得分:0)

我的问题在添加以下依赖项后得到解决:

  @Bean
    public FrameworkEndpointHandlerMapping endpointHandlerMapping() {
        return new FrameworkEndpointHandlerMapping();
    }

答案 1 :(得分:0)

TokenEndpoint bean有一个允许的HttpMethods列表。默认现在只是HttpMethod.POST。在创建TokenEndpoint bean之后以某种方式调用setAllowedRequestMethods将解决此问题。我这样做是为了在一个项目中修复它:

@Configuration
public class OAuth2ProviderTokenGetAllowedBackwardsCompatible implements InitializingBean
{
    @Autowired
    private TokenEndpoint tokenEndpoint;

    @Override
    public void afterPropertiesSet() {
        tokenEndpoint.setAllowedRequestMethods(new HashSet<HttpMethod>() {{
            add(HttpMethod.GET);
            add(HttpMethod.POST);
        }});
    }
}

答案 2 :(得分:0)

我有同样的问题,结果是由我用来将所有端点映射到其他东西的控制器方法引起的,例如:

describe MyCLI do
  before do
    class Foo < StringIO
      def puts s 
        super unless s.start_with?('[WARNING] Attempted to create command')
      end
    end
    $stdout = Foo.new
  end

  after do
    $stdout = STDOUT
  end

  # your tests here...
end

解决了将所有匹配端点更改为:

的问题
@GetMapping("**")