programing

H2-콘솔이 브라우저에 표시되지 않음

bestprogram 2023. 4. 2. 12:01

H2-콘솔이 브라우저에 표시되지 않음

저는 SpringBoot api에서 작업하고 있으며, 다음과 같은 속성 설정으로 H2 데이터베이스를 사용하고 있습니다.

spring.h2.console.enabled=true
spring.datasource.name=test
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.initialization-mode = embedded
spring.datasource.url=jdbc:h2:mem:test
spring.jpa.hibernate.ddl-auto = update

브라우저를 사용하여 'http://localhost:8082/h2-console'을 통해 H2 데이터베이스 콘솔을 보려면 브라우저에서 연결 및 테스트 연결 버튼이 있는 화면이 열립니다.[ Test Connection ]를 클릭하면 정상적으로 반환되지만 [Connect]버튼을 클릭하면 localhost가 접속을 거부했다는 오류가 나타납니다.

이 에러의 화면은 다음과 같습니다.

스프링 보안 파일에 이 두 줄을 추가하면 바로 사용할 수 있습니다.

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

기본적으로는 Spring Security는 iframe 내 렌더링을 비활성화합니다.이는 클릭잭킹과 같은 웹 페이지를 프레임에 추가하는 것이 보안상의 문제가 될 수 있기 때문입니다.H2 콘솔은 프레임 내에서 동작하기 때문에 Spring 보안이 네이블로 되어 있는 동안 H2 콘솔을 동작시키려면 프레임옵션을 명시적으로 디세블로 할 필요가 있습니다.

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

일반적으로 X-Frame-Options에는 DENY 또는 SAME ORIGIN 두 가지 디렉티브가 있습니다.따라서 다음 설정은 제한적이지만 안전한 접근에도 사용할 수 있습니다.

headers().frameOptions().sameOrigin();

그러면 페이지 자체와 같은 원본 프레임에 페이지를 표시할 수 있습니다.

@Alien의 대답과는 별도로, 나는 덧붙여야만 했다.http.csrf().disable();또한.

다음 행 1 application.properties 추가

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

spring.h2.console.enabled=true

또한 pom.xml에 다음과 같이 추가되었다.

<build>
  <plugins>
    <plugin>
      <configuration>
        <jdbc>
          <driver>org.h2.Driver</driver>
          <url>jdbc:h2:~/test</url>
        </jdbc>
      </configuration>
    </plugin>
  </plugins>
<build>

언급URL : https://stackoverflow.com/questions/53395200/h2-console-is-not-showing-in-browser