Zugriff auf statische Inhalte im gesicherten Spring-Boot-Anwendung
Ich habe einen standalone-Spring-Boot-Anwendung mit Vorlagen in /src/main/resources/templates und statischen Inhalt in /src/main/resources/static. Ich möchte die statischen Inhalte zugänglich sein, bevor die Authentifizierung, also die CSS-Lasten auf die login-Seite als auch. Jetzt ist es nur lädt nach der Authentifizierung. Meine security-Konfiguration sieht so aus:
@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();
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den statischen Inhalt in
classpath:/static
genießen Sie im Stammverzeichnis der Anwendung (D. H./*
), ob die Anwendung sicher ist, so dass Sie übereinstimmen müssen, die auf bestimmten Pfaden unterhalb der Wurzel. Spring Boot ermöglicht allen den Zugriff standardmäßig auf/js/**
,/css/**
,/images/**
(sieheSpringBootWebSecurityConfiguration
für details), aber Sie müssen möglicherweise umgestellt, dass aus (kann nicht sehen, den rest des Codes)..antMatchers("/css/**").permitAll()
es funktioniert. Ich bearbeitet meine post umfassen die gesamte security-config. Ich sehe nicht, wo sonst hätte ich abgeschaltet, die default-Verhalten?@EnableWebSecurity
schaltet die Standard-Einstellungen.