본문 바로가기
  • BLG-ZYNGIROK-모토-꿈꾸며-배우고-나누며-이루다
ICT/Java

Java | Spring | H2 Localhost에서 연결을 거부했습니다.

by dazwischen 2022. 7. 20. 17:12
반응형

java-spring-h2-localhost에서-연결을-거부했습니다-썸네일-이미지이다.
h2 localhost에서 연결을 거부했습니다

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를 사용하지 않는다면 이 부분은 삭제 후 배포해도 된다.

반응형

댓글