web-dev-qa-db-fra.com

Pourquoi la console H2 dans Spring Boot affiche-t-elle un écran vide après la connexion?

J'utilise Spring Boot 1.4.1 avec la base de données H2. J'ai activé la console H2 comme décrit dans le guide reference en ajoutant les lignes suivantes à mon fichier application.properties:

spring.h2.console.enabled=true
spring.h2.console.path=/h2

Lorsque je vais à la console H2 dans Chrome 53 pour Windows, je peux voir la page de connexion et cliquer sur le bouton "Tester la connexion" donne le résultat "Test réussi":

enter image description here

Mais lorsque je clique sur le bouton "Connecter", l'écran devient complètement vide. Lorsque je visualise le code source, le message "Désolé, Lynx n'est pas encore pris en charge" (voir la source full ). La même chose se passe dans Firefox.

Pourquoi est-ce que ça se passe? Je pense utiliser la bonne URL JDBC, en tant que 4 personnes différentes postées sur cette question que vous devriez utiliser jdbc:h2:mem:testdb.

32
pacoverflow

Selon un article blog , une ligne doit être ajoutée à La méthode configure de la classe SecurityConfig si vous avez la dépendance spring-boot-starter-security dans votre projet, sinon vous verrez une page vide après vous être connecté à la console H2 :

http.headers().frameOptions().disable();

J'ai ajouté cette ligne et cela a résolu le problème.

Vous pouvez également utiliser la ligne suivante (comme mentionné ici ):

http.headers().frameOptions().sameOrigin();
58
pacoverflow

Un pourrait résoudre le même problème en utilisant la ligne suivante sur mon bean Security Config

@Override
protected void configure(HttpSecurity http) throws Exception {
    bla();
    bla();   
    http.headers().frameOptions().sameOrigin();
}

Je ne sais pas ce que cette ligne fait, peut-être que quelqu'un avec plus d'expérience peut l'expliquer.

3
Martin Larizzate

Ajoutez ceci à votre application.properties

 security.headers.frame=false
0
Antariksh