2014-10-06 9 views
7

Buduję szkieletowy program dla deweloperów z zabezpieczeniami 4 sprężynowymi i innymi. Używanie H2 podczas próby zalogowania się do konsoli db i zarządzania moim db i otrzymuję następujący błąd. Strona jest pusta, z 4 błędów w Firebug konsole:Uruchamianie konsoli bazy danych H2 Wczytanie odmowy przez X-Frame-Options

Load denied by X-Frame-Options: http://localhost:8080/console 

z linkami do

/header.jsp?jsessionid=f71207a702c9177e57208414721bbe93 does not permit framing. 
/query.jsp?jsessionid=f71207a702c9177e57208414721bbe93 does not permit framing. 
/help.jsp?jsessionid=f71207a702c9177e57208414721bbe93 does not permit framing. 
/tables.do?jsessionid=f71207a702c9177e57208414721bbe93 does not permit framing. 
  1. mogę przetestować połączenie z poziomu konsoli - jego OK.
  2. DB działa dobrze, import.sql działa dobrze, mogę tworzyć podmioty użytkownika z wiosną jest uruchamianie.

Konfiguracja używam jest od (i to działa na wiosnę 3.2 z konfiguracji xml)

spring boot default H2 jdbc connection (and H2 console)

Zastosowanie: wiosna-Boot-starter niepełnych 1.1.4.RELEASE

+0

Dodany .i() nagłówki() .addHeaderWriter (nowa XFrameOptionsHeaderWriter ( \t \t nowy WhiteListedAllowFromStrategy (Arrays.asList ("http: // localhost: 8080", "http: // localhost")))) Biała strona i informacje, aby odświeżyć stronę, aby uzyskać kod źródłowy. –

Odpowiedz

4

Dodano kod poniżej Application.java i na razie działa, domyślnie na porcie 8082, zaczyna się wiosną. Nie trafia w miejsce, ale dla celów programistycznych wszystko jest w porządku.

@Bean 
org.h2.tools.Server h2Server() { 
    Server server = new Server(); 
    try { 
     server.runTool("-tcp"); 
     server.runTool("-tcpAllowOthers"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return server; 

} 
2

Ten pracował dla mnie:

@EnableWebSecurity 
@Configuration 
class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.headers().addHeaderWriter(
      new XFrameOptionsHeaderWriter(
       new WhiteListedAllowFromStrategy(Arrays.asList("localhost")))); 
    } 
} 

Oczywiście zawartość białej listy należy dostosować w przypadku, gdy aplikacja jest uruchomiona na czymś innym niż localhost.

+1

Jeszcze lepsze rozwiązanie: 'http.headers(). AddHeaderWriter (nowy XFrameOptionsHeaderWriter (XFrameOptionsMode.SAMEORIGIN));' To nie wymaga wyjaśnienia nazwy hosta w konfiguracji secuiryty – chrosciu

+6

Jeszcze lepiej: '.headers(). FrameOptions(). sameOrigin() ' –

10

Możliwe jest również, aby uprościć odpowiedź od @chrosciu z tym:.

@Configuration 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
    http.headers().frameOptions().disable(); 
    } 
} 
+0

Albo, bardziej bezpiecznie,' headers(). frameOptions(). sameOrigin() '. – djxak

Powiązane problemy