본문 바로가기
spring

[springboot] h2-console 접속이 안될 경우 문제 해결

by moonsiri 2020. 10. 14.
728x90
반응형

h2-console 접속이 안될 경우 해결 방법을 알려드리겠습니다.

http://localhost:8080/h2-console/

 

 

1. h2-console enabled

 

h2-console 접속이 안된다면 application.yml에 아래 내용을 추가합니다.

spring
  h2:
    console:
      enabled: true

 

 

 

2. Spring Security + H2

 

잘 작동하던 H2 데이터베이스가 Spring Security를 적용하자 작동을 하지 않는 이유는

Spring Security에서 H2 데이터베이스 콘솔 접근을 차단했기 때문입니다.

 

다음과 같이 Java Security Configuration을 설정해줍니다.

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    // ...

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/h2-console/**");
    }

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        httpSecurity
            .authorizeRequests()    // 권한요청 처리 설정 메서드
                .antMatchers("/h2-console/**").permitAll()  // 누구나 h2-console 접속 허용
                .and()
            // ...
            .csrf()
                .ignoringAntMatchers("/h2-console/**")
                .disable(); // GET메소드는 문제가 없는데 POST메소드만 안되서 CSRF 비활성화 시킴
    }

}

 

 

 

3. H2 콘솔 죄송합니다. 이 서버에서 원격 연결 ( 'webAllowOthers')을 사용할 수 없습니다.

 

AWS EC2에 프로젝트를 빌드 배포 후 다음과 같은 에러 메시지가 뜨고 h2-console 접속이 안된다면 application.yml에 아래 내용을 추가합니다.

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
  h2:
    console:
      enabled: true
      settings:
        web-allow-others: true  # 추가

 

728x90
반응형

댓글