mvc - acceder al contenido estático en la aplicación segura Spring Boot
spring security pdf español (1)
El contenido estático en classpath:/static
se sirve en la raíz de la aplicación (es decir, /*
), independientemente de si la aplicación es segura o no, por lo que debe coincidir en rutas específicas debajo de la raíz. Spring Boot permite todo acceso por defecto a /js/**
, /css/**
, /images/**
(ver SpringBootWebSecurityConfiguration
para más detalles), pero puede haberlo desactivado (no puede ver el resto de su código) .
Tengo una aplicación Spring Boot independiente con plantillas en / src / main / resources / templates y contenido estático en / src / main / resources / static. Me gustaría que el contenido estático sea accesible antes de la autenticación, por lo que el CSS también se carga en la página de inicio de sesión. Ahora solo se carga después de la autenticación. Mi configuración de seguridad se ve así:
@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();
}
}