ICT/Java
Java | Spring | H2 Localhost에서 연결을 거부했습니다.
dazwischen
2022. 7. 20. 17:12
반응형
localhost에서 연결을 거부했습니다
스프링 시큐리티(Spring security)를 적용한 이후 h2 접속이 거부되는 경우가 있다. 현재까지 파악한 원인은 두 가지이다.
원인 1 - 접근권한 설정
스프링 시큐리티를 적용한 이후에는 각 페이지에 어떤 권한을 가진 사람들이 접근 가능한지 설정을 해줘야 한다. 이런 설정은 SecurityConfig라는 파일에서 설정해준다.
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests()
.antMatchers("/h2-console/**)")
.permitAll;
}
antMatchers메서드에 "/h2-console/**"을 추가해준다. 이것만으로 연결이 되는 경우가 대부분이다.
원인 2 - X-Frame-Options
X-Frame-Options는 HTTP 응답 헤더 내 한 요소로써 <frame>, <iframe>, <object> 등에서 렌더링 가능한지를 알려주는 역할을 한다. 특히 clickjacking 공격을 마기 위해 사용하는데 스프링 시큐리티에서는 기본적으로 이 옵션을 사용하도록 해두었다. 하지만 이 기능을 켜 두고는 h2-console에 접근이 안될 수 있다. 따라서 h2를 사용하는 동안에 이 기능을 꺼둘 수 있다.
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.headers().frameOptions().disable;
}
http에 위와 같은 메서드를 작성해주면 x-frame-options를 꺼둘 수 있다. 이렇게 하면 h2-console의 접속이 다시 가능해진다.
** 배포하는 서비스가 h2를 사용하지 않는다면 이 부분은 삭제 후 배포해도 된다.
반응형