Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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
Java 静态资源是安全的,在迁移到Spring Boot 2.0后无法访问_Java_Spring Boot_Spring Security - Fatal编程技术网

Java 静态资源是安全的,在迁移到Spring Boot 2.0后无法访问

Java 静态资源是安全的,在迁移到Spring Boot 2.0后无法访问,java,spring-boot,spring-security,Java,Spring Boot,Spring Security,我已经将SpringBootWeb应用程序从1.5.10迁移到2.0.0,它与Heroku一起部署,并在多个域上运行。对于主域,这是第一个被设置的域,所有的工作都很顺利,但是对于其余的任何静态资源;像Javascript、CSS一样,图像和图标(webjar)是不可访问的 maindomain.com/js/example.js工作正常,可以通过浏览器直接访问secondarydomain.com/js/example.js无法被浏览器访问,运行应用程序时会出现此错误,我猜是因为.js文件返回的

我已经将SpringBootWeb应用程序从1.5.10迁移到2.0.0,它与Heroku一起部署,并在多个域上运行。对于主域,这是第一个被设置的域,所有的工作都很顺利,但是对于其余的任何静态资源;像Javascript、CSS一样,图像和图标(webjar)是不可访问的

maindomain.com/js/example.js
工作正常,可以通过浏览器直接访问
secondarydomain.com/js/example.js
无法被浏览器访问,运行应用程序时会出现此错误,我猜是因为.js文件返回的不是文本消息,而是文本消息:

拒绝从“”执行脚本,因为其MIME类型('text/html')不可执行,并且启用了严格的MIME类型检查

静态资源位于:

/resources/static/css

/resources/static/js

/resources/static/images

我已使用WebSecurityConfigureAdapter的扩展设置了Spring安全配置,其中我已撤销了@EnableWebSecurity注释,并添加了此代码,旨在确保这些资源可以访问,但不会成功:

http
 .authorizeRequests()
     .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
有一个HandleInterceptor,它处理每个辅助域可访问的目录。主要的一个,可以访问整个应用程序。 在另一个问题中,使用不同的方法处理同一个问题,有一个HandleInterceptor的摘录


带引导的Spring Security在类路径上,默认情况下,自动配置保护所有端点

然而,当涉及到复杂的应用程序时,每个端点需要不同的安全策略。我们还需要配置哪些端点应该是安全的,哪些类型的用户应该能够访问端点,哪些端点应该是公共的

WebSecurity
允许我们配置添加Spring安全性应该忽略的RequestMatcher实例

HttpSecurity
允许我们可以配置应该安全的端点和应该公开的端点

public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring()
        .antMatchers("/resources/**");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers("/css/**", "/js/**", "/image/**"").permitAll()
    }
}

希望能有所帮助。

不鼓励只使用代码的答案。请点击并添加一些文字,总结您的代码如何解决问题。Thanks@Nick谢谢通知,我已经添加了详细的解释。