반응형
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를 사용하지 않는다면 이 부분은 삭제 후 배포해도 된다.
반응형
'ICT > Java' 카테고리의 다른 글
스프링의 정석 | AOP 강의 따라가다가 Java 버전 오류 발생 해결방법 (0) | 2023.02.02 |
---|---|
Java | Spring boot | 오류 No converter found for return value of type (0) | 2022.08.24 |
Thymeleaf | 비어 있는 리스트 판단하기 (0) | 2022.06.02 |
Java | Spring | 검색 구현 시 결과가 없어서 빈 리스트를 반환하고 싶을 때 (0) | 2022.06.02 |
Spring Boot | 로그인한 사용자 정보 불러오는 초간단 방법 (0) | 2022.05.20 |
댓글