gpt4 book ai didi

java - Spring Boot 1.4 和 Thymeleaf 2 安全性

转载 作者:行者123 更新时间:2023-12-01 09:31:05 25 4
gpt4 key购买 nike

我正在尝试 Spring Boot 1.4 和 Thymeleaf 2。我想保护我的应用程序。这是我的安全配置:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/resources/static/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}

这是我的 MVC Controller :

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index").setViewName("index");
registry.addViewController("/").setViewName("index");
registry.addViewController("/login").setViewName("login");
}
}

但是,当我尝试访问 localhost:8080 时,它显示没有 css、js 的索引页面!当我通过 localhost:8080/login.html 手动登录时,一切正常。我遵守 Spring 的约定 - Thymeleaf 集成和静态资源位于 /resources/static 下,模板位于 /resource/templates 下。

我缺少什么?

编辑:

它以这种方式工作:

    http
.authorizeRequests()
.antMatchers("/css/**").permitAll()
.antMatchers("/js/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();

但是静态资源下的所有文件夹都应该这样添加吗?看来我错过了什么。

最佳答案

您应该将 css 和 javascript 文件添加到 src/main/webapp

现在您的结构如下:

webapp
|__css/myStyles.css
|__js/myjs.js
|__images/myImage.gif
|__WEB-INF

将此添加到您的安全配置中

@Override
public void configure(WebSecurity security) {
security.ignoring().antMatchers("/css/**", "/fonts/**", "/libs/**", "/js/**", "/images/**");
}

关于java - Spring Boot 1.4 和 Thymeleaf 2 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com