Java Spring引导应用程序端点返回403

Java Spring引导应用程序端点返回403,java,spring,spring-boot,appdirect,Java,Spring,Spring Boot,Appdirect,我是Spring Boot的新手,目前被卡住了。我遵循了这个()教程,因为我想实现一个将自身集成到AppDirect中的应用程序。在日志中,我可以看到端点被创建和映射: 2018-10-29 16:32:48.898 INFO 8644 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/integration/processEvent],methods=[GET],produce

我是Spring Boot的新手,目前被卡住了。我遵循了这个()教程,因为我想实现一个将自身集成到AppDirect中的应用程序。在日志中,我可以看到端点被创建和映射:

2018-10-29 16:32:48.898  INFO 8644 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/integration/processEvent],methods=[GET],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<com.appdirect.sdk.appmarket.events.APIResult> com.appdirect.sdk.appmarket.events.AppmarketEventController.processEvent(javax.servlet.http.HttpServletRequest,java.lang.String)
这是我的Application.java:

package de.....;

import java.nio.charset.Charset;
import java.util.Collections;
import java.util.List;

import org.springframework.boot.SpringApplication;
import org.springframework.http.MediaType;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

public class Application extends WebMvcConfigurerAdapter {
    public static void main(String... args) {
        SpringApplication.run(RootConfiguration.class, args);
    }

    /**
     * Hack to make Spring Boot @Controller annotated classed to recognize the 'x-www-form-urlencoded' media type
     *
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FormHttpMessageConverter converter = new FormHttpMessageConverter();
        MediaType mediaType = new MediaType("application", "x-www-form-urlencoded", Charset.forName("UTF-8"));
        converter.setSupportedMediaTypes(Collections.singletonList(mediaType));
        converters.add(converter);
        super.configureMessageConverters(converters);
    }
}
package de.....;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import com.appdirect.sdk.ConnectorSdkConfiguration;
import com.appdirect.sdk.appmarket.DeveloperSpecificAppmarketCredentialsSupplier;
import com.appdirect.sdk.credentials.StringBackedCredentialsSupplier;

import de.....;

@Configuration
@Import({
    ConnectorSdkConfiguration.class,
    EventHandlersConfiguration.class
})
@EnableAutoConfiguration
public class RootConfiguration {

    @Bean
    public DeveloperSpecificAppmarketCredentialsSupplier environmentCredentialsSupplier(@Value("${connector.allowed.credentials}") String allowedCredentials) {
        return new StringBackedCredentialsSupplier(allowedCredentials);
    }
}
任何帮助都会被感激,因为密集的谷歌搜索没有帮助。
提前感谢。

添加以下类并在Application.java中注册它解决了我的问题:

package de.......;

import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
@Order(1)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        httpSecurity.authorizeRequests().antMatchers("/").permitAll();
    }

}

您正在使用Spring Security,对吗?如果是这样,您应该知道默认情况下所有端点都是安全的,所以您必须进行登录,以便对资源发出进一步的请求。如果您不打算保护端点,请从依赖项中删除Spring安全性。感谢您为我指明了正确的方向。以下页面引导我找到了我的解决方案,请参见下面我自己的答案:
package de.......;

import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
@Order(1)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        httpSecurity.authorizeRequests().antMatchers("/").permitAll();
    }

}