Spring安全后,资源(js / css / images)无效

时间:2013-10-18 21:21:12

标签: spring spring-mvc spring-security

1)我使用纯java配置配置了应用程序。 除了css / js / images之外,一切似乎都正常工作。该应用程序可在Github上找到

https://github.com/rajendersaini/cabms/

只想指出配置

AppConfig - spring mvc config - 使用

注册资源
registry.addResourceHandler("/resources/**")
                .addResourceLocations("/WEB-INF/resources/").setCachePeriod(31556926);

并在SecurityConfig中 -

http.authorizeRequests()
                .antMatchers(LoginController.AUTHLOGIN,
                        ResourceConfig.RESOURCE_PATH_MATCHER).permitAll()
                .anyRequest().authenticated().and().formLogin()
                .loginPage(LoginController.AUTHLOGIN);

你能帮忙解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您的静态资源在战争文件中的哪个位置?我问,因为你在WEB-INF目录下有它们。我不知道Spring是否允许您使用WEB-INF提供公共内容。

在我的构建中,我有

下的静态内容
src/main/webapp/resources/...
    /css
    /js
    /img

这样,它们最终位于/ resources目录下war文件的顶层。你可以试一试。

答案 1 :(得分:0)

1)最后我的应用程序资源正在运行 - 我所做的改动很少,在我的mvc应用程序配置中,我不知道何时引入此行,这是罪魁祸首。我稍后会进行调查

   @Override
        public void configureDefaultServletHandling(
                        DefaultServletHandlerConfigurer configurer) {
                configurer.enable();
        }

2)Java webapp初始化程序正在寻找应该是“/ *”而不是“/”的映射

3)在页眉和页脚中,我们需要将上下文附加到资源路径。

答案 2 :(得分:0)

您没有指定会忽略静态资源的应用程序安全性的安全规则。尝试在Spring Security配置类中添加这样的代码:

       public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/resources/**");
    }