javascript - Spring mvc security and WEB-INF js,images access-拒绝从 'http://localhost:8081/xyz/static/internal/js/jquery-1.10.2.min.js'执行脚本

标签 javascript spring spring-mvc static-content

需要跟随的帮助。

我正在使用带有 spring security 3.2.7 和注释的 spring 4.1。

我的 js、css、图像没有加载..我收到这个错误。

具有安全性和 WEB-INF js 和图像访问权限的 Spring mvc - 拒绝从“http://localhost:8081/xyz/static/internal/js/jquery-1.10.2.min.js”执行脚本' 因为它的 MIME 类型('text/html')不可执行,并且启用了严格的 MIME 类型检查。

没有 spring security 一切正常

这些是 mvcconfig 中的配置。

 @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/", "/resources/");
    registry.addResourceHandler("/static/**").addResourceLocations("/", "/WEB-INF/pages/static/");
}

@Bean
public ViewResolver viewResolver() {
    final InternalResourceViewResolver bean = new InternalResourceViewResolver();
    bean.setViewClass(JstlView.class);
    bean.setPrefix("/WEB-INF/pages/");
    bean.setSuffix(".jsp");
    return bean;
}

这些在安全配置中。

 @Override
public void configure(final WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/WEB-INF/pages/static/**");
    web.ignoring().antMatchers("/resources/**");
}

web.xml 是

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<servlet>
    <servlet-name>mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
    <filter-name>localizationFilter</filter-name>
    <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>localizationFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

非常困惑-当我忽略时-web.ignoring().antMatchers("/WEB-INF/pages/static/**"); 为什么它无法加载我的静态内容。 请帮我解决这个问题。

最佳答案

您应该知道 Ant 匹配器是与请求路径进行比较,而不是与资源的文件系统路径进行比较。在这方面,正确的配置是:

web.ignoring().antMatchers("/static/**");

关于javascript - Spring mvc security and WEB-INF js,images access-拒绝从 'http://localhost:8081/xyz/static/internal/js/jquery-1.10.2.min.js'执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30009817/

相关文章:

java - 如何获取 href 中的 2 个参数 - Spring MVC?

java - 使用 PreAuthorize 时,ResponseBody 方法中的 Autowiring 服务为 Null

javascript - Jquery 旋转在点击时旋转图像

javascript - 如何在php中不分离地在一个循环中正确显示所有英文定义?

spring - 何时创建存储库接口(interface) (jpaRepository) bean?

spring - 如何使用 REST-ful URL 创建 Spring 3 + Tiles 2 webapp?

javascript - 切换元素不适用于 jQuery

javascript - 如何在 HTML5 音频标签中隐藏位置 slider ?在音频元素中隐藏 "fake"输入元素?

java - Spring Boot 缓存 SpEL (#result) 返回 Null

java - Hibernate一对一映射不获取父类的子类数据