In einem Artikel erfahren Sie, wie Sie SpringBoot + SpringSecurity lösen, ohne statische Ressourcen abzufangen

1. Problembeschreibung

Nach dem Hinzufügen von SpringSecurity zu SpringBoot werden statische Ressourcen immer gefiltert, was die Schnittstelle hässlich macht:
Fügen Sie hier eine Bildbeschreibung ein
Verzeichnisstruktur:
Fügen Sie hier eine Bildbeschreibung ein

2. Problemlösung

Normalerweise werden Ressourcen nicht abgefangen. Wenn ich Daten überprüfe, konfiguriere ich die Methode grundsätzlich neu:

package org.yolo.securitylogin.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @Auther: Yolo
 * @Date: 2020/9/12 13:05
 * @Description:
 */
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    
    @Bean
    PasswordEncoder passwordEncoder() {
    
    
        return NoOpPasswordEncoder.getInstance();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    
    
        //在内存中进行配置
        auth.inMemoryAuthentication()
                .withUser("yolo")
                .password("123").roles("admin");
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
    
    
        //web.ignoring().antMatchers("/static/js/**", "/static/css/**", "/static/images/**");
        web.ignoring().antMatchers("/js/**", "/css/**","/images/**");
    }
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    
    
        http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login.html")
                .permitAll()//跟登录相关的页面统统放行
                .and()
                .csrf().disable()
        ;
    }
}

Die herkömmliche Methode ist:

    @Override
    public void configure(WebSecurity web) throws Exception {
    
    
        web.ignoring().antMatchers("/js/**", "/css/**","/images/**");
    }

Fügen Sie hier eine Bildbeschreibung ein

Hierbei ist zu beachten, dass Sie nach der Konfiguration auf diese Weise das Ziel löschen müssen, da es sonst nicht wirksam wird

Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/nanhuaibeian/article/details/108554515
Empfohlen
Rangfolge