我现在正在做一个学校项目,在那里我试图在一个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是一件大事。
有人能帮我找出到底是什么问题吗?
事先谢谢你,符文
1条答案
按热度按时间w80xi6nr1#
感谢@eleftheria stein kousathana解决了这个问题。
@需要enablewebsecurity,而不是@enablewebmvc。
因为您得到的是notfound响应,所以这与Spring Security 无关。您是否打算用@enablewebsecurity>而不是@enablewebmvc来注解ApplicationSecurity配置类?@enablewebmvc注解将阻止服务静态资源的默认行为>。请看这个问题了解更多详细信息stackoverflow.com/questions/24661289/–eleftheria stein kousathana