Sto costruendo un'applicazione Spring MVC con Spring Security e Bootstrap nei miei file HTML (template di Thymeleaf). La parte Spring Security si basa sulla Spring Guide for Spring Security e combinata con un server delle applicazioni Spring Boot.Spring Security "Rifiutato di eseguire script da ..."
Dopo aver abilitato Primavera di sicurezza del file di bootstrap css non verrà caricato con il messaggio di errore:
Refused to execute script from 'http://localhost:8080/js/bootstrap.min.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Il messaggio di errore di cui sopra proviene dalla console Chrome sviluppatore.
Quello che ho provato:
- Disabilitazione della funzione Sicurezza Primavera => bootstrap css funziona di nuovo, ma ho bisogno della sicurezza
- ricerca sui forum di primavera, ma c'è un loop collegamento senza soluzione
- Aggiunta di un gestore risorse, ma non riesco a vedere che il gestore venga richiamato né l'errore scompare
- Aggiunta della ris ONTI percorso del
permit
chiamata
La mia struttura dir:
/main
|-> /java
| BootStart.java
|-> /security
|SecurityConfiguration.java
|-> /resources
|-> /static
|-> /css /** bootstrap location */
|-> /js
|-> /fonts
|-> /templates
| /user
| sample.html
BootStart.java è il file java che viene raccolto da primavera Boot.
BootStart.java:
@EnableAutoConfiguration
@ComponentScan
public class BootStart {
public static void main(String[] args) {
SpringApplication.run(BootStart.class, args);
}
}
SecurityConfiguration.java:
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
http
.authorizeRequests()
.antMatchers("/", "/resources/static/**").permitAll()
.anyRequest().authenticated();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
Sample.html:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" th:href="@{/css/bootstrap.css}" href="../../css/bootstrap.min.css"/>
<link rel="stylesheet" th:href="@{/css/bootstrap-theme.css}" href="../../css/bootstrap-theme.min.css"/>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<div class="alert alert-danger" role="alert">!Basic template!</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
Attualmente sto usando le seguenti dipendenze nel mio pom:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
Come configurare Spring Security in modo che sia possibile caricare i file css/js dalla directory delle risorse/statiche?
sto affrontando lo stesso problema, hai trovato una soluzione? – vratojr
Ecco la mia risposta: [Come impostare Primavera di sicurezza per consentire webjars] [1] [1]: http://stackoverflow.com/a/31893880/912829 – ACV