当前位置: 首页 > 知识库问答 >
问题:

在安全的Spring Boot应用程序中访问静态内容

颛孙正谊
2023-03-14

我有一个独立的Spring Boot应用程序,其中模板位于/src/main/resources/templates中,静态内容位于/src/main/resources/static中。我希望在身份验证之前可以访问静态内容,因此CSS也会加载到登录页面上。现在它只在身份验证后加载。我的安全配置如下所示:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    private static final Logger logger = Logger.getLogger(SecurityConfig.class);

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) {
        try {
            auth.inMemoryAuthentication()
            ...
        } catch (Exception e) {
            logger.error(e);
        }
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .formLogin()
                .defaultSuccessUrl("/projects", true)
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .logoutRequestMatcher(new AntPathRequestMatcher("/logout", "GET"))
                .permitAll()
                .and()
            .authorizeRequests()
                .antMatchers("/static/**").permitAll()
                .anyRequest().authenticated();
    }

}

共有1个答案

仲孙毅
2023-03-14

无论应用程序是否安全,应用程序的根目录(即,/*)中的静态内容都是静态的,因此您需要在根目录下的特定路径上进行匹配。默认情况下,Spring Boot允许所有访问/js/***、/css/***、/图像/***(有关详细信息,请参阅SpringBootWebSecurity配置),但您可能已将其关闭(无法查看其余代码)。

 类似资料:
  • 我有一个小型java webapp,由三个微服务组成——api-service、book-service和db-service,所有这些都使用mini kube本地部署在kubernetes集群上。 我计划为api-service和book-service保留单独的UI,从单独的pod提供常见的静态文件,可能是映像。 我能够创建一个前端,为参考本教程的nginx:alpine中的静态文件提供服务。

  • 我从这个来源构建了一个基本的spring身份验证服务:https://spring.io/guides/gs/securing-web/ 试图使用stackoverflow上几乎所有的解决方案来包含本地文件夹中的JS文件,但是我做不到。当html页面加载时,它显示:< br >“未捕获的引用错误:未定义我的函数” 这是我的home.html剧本: 这是我的js文件所在的位置,htmls被放置在模板

  • 问题内容: 假设我有一些Java代码: 如果一个线程正在初始化SomeClass的对象,并且在第二个线程想要再次加载SomeClass的过程中正在初始化静态块中的值,那么该静态块会怎样?即使第一个线程未完成,第二个线程是否仍假设它已初始化而忽略了它?还是发生其他事情? 问题答案: 如果第一个线程尚未完成对SomeClass的初始化,则第二个线程将阻塞。 Java语言规范的12.4.2节中对此进行了

  • 谷歌正在取消不太安全的应用程序访问功能。我正在为我的网站的联系人页面使用smtp电子邮件服务。但在2022年5月30日之后,这项服务可能无法工作。 有没有其他方法可以让第三方不太安全的应用程序访问我的Gmail帐户。。? 应用程序密码能解决这个问题吗...?我怀疑设置应用程序密码也不会提供访问权限,因为谷歌表示这可能不适用于不太安全的应用程序。 那么有什么方法可以解决这个问题,以便smtp电子邮件

  • 本文向大家介绍SpringBoot使用Thymeleaf模板引擎访问静态html的过程,包括了SpringBoot使用Thymeleaf模板引擎访问静态html的过程的使用技巧和注意事项,需要的朋友参考一下 最近要做一个java web项目,因为页面不是很多,所以就没有前后端分离,前后端写在一起,这时候就用到thymeleaf了,以下是不动脑式的傻瓜教程。。。。。 一:创建spring boot的

  • 问题内容: 我需要使用此URL访问一些图像http:// localhost:8080 / static / img1.jpg 图像位于“ / home / andrea / Documents”中,应用程序上下文为“ /”。我正在使用GlassFish 4.1.1。 在项目的/ WEB-INF目录中,我得到了以下内容:(glassfish-web.xml) 问题是找不到该文件。 我错过了什么?