从嵌入式servlet容器

时间:2018-02-16 00:17:37

标签: spring-boot spring-security

我在Spring Boot应用程序中遇到了一个问题。当我从Tomcat 8容器(未嵌入)运行应用程序时,在任何弹簧启动API端点上都可以获得访问而没有任何问题。

的web.xml

<filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
  <filter-name>springSecurityFilterChain</filter-name>
  <servlet-name>/*</servlet-name>
</filter-mapping>

如果我通过嵌入式servlet容器的主程序启动相同的应用程序,那么我收到错误,需要对相同的API进行身份验证(401错误)。

{
   "timestamp": 1518739659744,
   "status": 401,
   "error": "Unauthorized",
   "message": "Full authentication is required to access this resource",
   "path": "/api/xyz"
}

我在spring boot的配置中有以下bean实例,它等同于web.xml但仍然出错。

@Bean
      public FilterRegistrationBean springFilterRegistration(){
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setName("springSecurityFilterChain");
        filterRegistrationBean.setFilter(new DelegatingFilterProxy());
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
        return filterRegistrationBean;
      }

如果您遇到任何类似问题或遇到过,请告诉我。感谢。

1 个答案:

答案 0 :(得分:0)

试试

security.basic.enabled=false

application.properties或application.yml