spring security拒绝提供静态内容(javascript文件)

fwzugrvs  于 2021-07-16  发布在  Java
关注(0)|答案(1)|浏览(315)

我现在正在做一个学校项目,在那里我试图在一个springboot项目上实现springsecurity的登录功能。
不幸的是,我在加载javascript文件方面遇到了麻烦,在搜索了所有可能的解决方案之后,我仍然没有找到任何问题的答案。
我有很多关于资源的重复代码,但我只是试图覆盖我的所有基础。
这是我的spring安全配置类:

@Configuration
@EnableWebMvc
public class ApplicationSecurityConfiguration extends WebSecurityConfigurerAdapter implements WebMvcConfigurer
{
@Override
    protected void configure(HttpSecurity http) throws Exception
    {
        http
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/**/*.js").permitAll()
                .antMatchers("/**.js").permitAll()
                .antMatchers("/resources/**").permitAll()
                .antMatchers("/*.js").permitAll()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage("/login").permitAll()
                .and()
                .logout().invalidateHttpSession(true)
                .clearAuthentication(true)
                .logoutRequestMatcher(new AntPathRequestMatcher("logout"))
                .logoutSuccessUrl("/logout-success").permitAll();
    }

@Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring()
                .antMatchers("/h2-console/**")
                .antMatchers("/resources/**", "/static/**", "/css/**", "/js/**", "/img/**", "/icon/**");
    }

这是我的html代码,我的目标是我的generic/static/js/script.js文件。该文件索引在resources/templates/folder中

<script type="text/javascript" th:src="@{/js/script.js}"></script>

这是我的文件夹结构,在这里我放了一个箭头来显示script.js文件的位置。

│   ├───com
│   │   └───adventurealley
│   │       └───aafcro
│   │           ├───authorization
│   │           ├───bootstrap
│   │           ├───controller
│   │           ├───model
│   │           ├───repository
│   │           ├───restcontroller
│   │           └───service
│   ├───static
│   │   ├───css
│   │   └───js -> script.js
└───templates -> index.html

不幸的是,无法以任何形式访问script.js文件。无法在项目中使用javascript是一件大事。
有人能帮我找出到底是什么问题吗?
事先谢谢你,符文

w80xi6nr

w80xi6nr1#

感谢@eleftheria stein kousathana解决了这个问题。
@需要enablewebsecurity,而不是@enablewebmvc。
因为您得到的是notfound响应,所以这与Spring Security 无关。您是否打算用@enablewebsecurity>而不是@enablewebmvc来注解ApplicationSecurity配置类?@enablewebmvc注解将阻止服务静态资源的默认行为>。请看这个问题了解更多详细信息stackoverflow.com/questions/24661289/–eleftheria stein kousathana

相关问题