SpringBoot으로 구현한 애플리케이션의 DB를 H2Database(http://h2database.com)를 사용한다.

물론 다른 것을 사용할 수도 있다. 개발하고 있는 제품의 특성에 맞춰 h2Database를 선택했을 뿐.

h2database에 접속할 수 있는 웹콘솔로 h2console이 제공되는데, 이 녀석을 애플리케이션에서
함께 실행할 수 있는 방법을 찾고 있었다.

그러다가 찾은 정보가!

spring boot default H2 jdbc connection (and H2 console)

h2database 에 포함된 org.h2.server.web.WebServlet을 등록하면 콘솔을 빈으로 등록하고 웹상으로 접근이 가능한 것이다!

@Bean
public ServletRegistrationBean h2servletRegistration() {
    ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet());
    registration.addUrlMappings("/h2console/*");
    return registration;
}

위처럼 빈Bean 선언을 하고 실행을 하면! localhost:{port}/h2console으로 접근하면!



JDBC URL은 database 설정에서 url을 복사해서 넣으면 된다. 테스트하려면 jdbc:h2:mem:test

의 모습을 볼 수 있다.

애플리케이션에서는 스프링시큐리티를 이용하여 접근제어를 하고 있다.

로그인을 하면 다음과 같은 백지화면이 나타난다. 그 이유를 찾아보려고 개발자도구를 열어보니



와 같은 메시지가 뜨는 것을 확인한다. 재빨리 검색을 들어가서!

Content-Security-Policy Spring Security - stackoverflow

스프링시큐리티 설정코드 부분에

@Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      // ...
      .headers()
        .addHeaderWriter(new StaticHeadersWriter("X-Content-Security-Policy","script-src 'self'"))
      // ...
  }

다음과 같이 "X-Content-Security-Policy" 선언을 해줘야 한다. 애플리케이션을 재시작하면!



참 쉽죠잉??


+ Recent posts