2023-11-20
작성
문제 발생
h2-console로 접속하니 아래처럼 'localhost에서 연결을 거부했습니다'로 콘솔 접속이 거부된다.
해결 방법 1
만약 스프링 시큐리티(Spring security)를 적용했다면 h2-console 경로에서도 접근 가능하도록 설정을 해줘야 한다. antMatchers 메서드에 "/h2-console/**"을 추가해준다.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/h2-console/**)")
.permitAll;
}
해결 방법 2
그래도 동작하지 않는다면 X-Frame-Options 기능을 꺼본다. 스프링 시큐리티에서는 기본적으로 X-Frame-Options 옵션을 사용하도록 해두었다. 이 옵션은 HTTP 응답 헤더 내 한 요소로써 <frame>, <iframe>, <object> 등에서 렌더링 가능한지를 알려주는 역할을 한다. 특히 클릭재킹 공격을 막기 위해 사용하는데, 이 기능 때문에 h2-console에 접근이 안될 수 있으므로, h2를 사용하는 동안에 이 기능을 꺼둘 수 있다.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.headers().frameOptions().disable;
}
http 헤더에 x-frame-options을 disable처리하면 옵션을 끌 수 있다. 이렇게 하니 h2-console의 접속이 다시 가능했다. (만약 배포하는 서비스가 h2를 사용하지 않는다면 이 부분은 삭제 후 배포해도 된다.)
'Computer Science > DB' 카테고리의 다른 글
[Mybatis] 오라클 DB insert 이후 idx 값 가져오기 (nextVal, currVal) (0) | 2023.11.22 |
---|---|
H2 console 접속 오류 해결법 : Database "C:/Users/사용자명/test" not found, either pre-creat (0) | 2023.10.14 |
한눈에 파악하는 SQL 로드맵 (0) | 2023.09.13 |
Oracle offset (오라클 페이징 처리) (0) | 2022.10.05 |