2014-10-06 15 views
7

Tôi đang xây dựng một dự án xương cho dev với mùa xuân 4 khởi động an ninh và những người khác. Sử dụng H2 trong khi cố đăng nhập vào bảng điều khiển db và quản lý db i của tôi nhận được lỗi sau. Các trang web là trống, với 4 lỗi trong firebug konsole:Cơ sở dữ liệu H2 bảng điều khiển khởi động mùa xuân Tải bị từ chối bởi X-Frame-Options

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

Với các liên kết đến

/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. tôi có thể kiểm tra kết nối từ giao diện điều khiển mức - ok của nó.
  2. DB hoạt động tốt, import.sql hoạt động tốt, tôi có thể tạo các thực thể người dùng với mùa xuân đang bắt đầu.

Cấu hình tôi đang sử dụng là từ (và nó hoạt động trên suối 3.2 với cấu hình xml)

spring boot default H2 jdbc connection (and H2 console)

Sử dụng: lò xo khởi động khởi động cha mẹ 1.1.4.RELEASE

+0

Added .và() header() .addHeaderWriter (mới XFrameOptionsHeaderWriter ( \t \t mới WhiteListedAllowFromStrategy (Arrays.asList ("http: // localhost: 8080", "http: // localhost")))) Trang trắng và thông tin để làm mới trang để lấy mã nguồn. –

Trả lời

4

Nhập mã bên dưới vào Application.java và bây giờ nó hoạt động, mặc định trên cổng 8082, bắt đầu với ứng dụng mùa xuân. Nó không tấn công tại chỗ nhưng vì mục đích của dev, tất cả đều ổn.

@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

này đã làm việc cho tôi:

@EnableWebSecurity 
@Configuration 
class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

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

Tất nhiên nội dung của danh sách trắng nên được điều chỉnh trong trường hợp khi ứng dụng đang chạy trên một cái gì đó khác với localhost.

+1

Giải pháp tốt hơn: 'http.headers(). AddHeaderWriter (new XFrameOptionsHeaderWriter (XFrameOptionsMode.SAMEORIGIN));' Điều này không yêu cầu phải khai báo tên máy chủ trạng thái trong cấu hình secuiryty – chrosciu

+6

Thậm chí tốt hơn: '.headers(). FrameOptions(). sameOrigin() ' –

10

Cũng có thể đơn giản hóa các câu trả lời từ @chrosciu với điều này:.

@Configuration 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

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

Hoặc, an toàn hơn,' tiêu đề(). frameOptions(). sameOrigin() '. – djxak

Các vấn đề liên quan