지난 시간에 어떤 URI로 요청이 들어와도 무조건 login 페이지가 뜨는 마법을 겪고 글을 끝냈습니다. 이 매직에서 벗어나려면 SecurityConfig 클래스를 만들어서 configuration 수정을 해줘야 합니다. 이번 시간에는 그 방법에 대해서 다뤄보도록 하겠습니다.
로그인 페이지 사용하지 않기
@Configuration 어노테이션은 작성하지 않으셔도 됩니다. 일반적으로 패키지랑 이름을 제대로 지켜주면 스프링이 알아서 이 클래스 파일이 Config 파일이구나~ 하고 인지합니다. 간혹 인식하지 못하는 경우에만 추가해주시면 되겠습니다.
우리를 괴롭히는 로그인 페이지를 사용하지 않을거라면 위 두 가지 방식으로 제어할 수 있습니다. 첫 번째는 모든 요청에 대해서 권한을 허용하는 방법이고 두 번째는 로그인 form만 꺼버리는 방식입니다.
antMetchers를 이용하는 방식은 여러가지 응용이 가능합니다. 글을 작성하는 기능은 로그인을 한 사용자만 가능하다면 아래처럼 코드를 수정해서 제어할 수 있습니다.
/post 요청은 인증된 사용자만이 접근이 가능하고 그 외의 요청은 모두 허용하라는 라인입니다. 여러 방법 중에 본인의 프로젝트에 맞는 방식을 선택해서 사용하시면 원치 않게 등장하는 로그인 페이지는 사라지게 됩니다.
h2-console 열기
자 여기까지 설정해주셨으면 우리는 회원가입 기능을 다 구현했습니다. 회원가입 페이지에서 데이터를 입력하면 메인 페이지로 다시 돌아가도록 해놨기에 그쪽으로 이동하겠죠. 자 그러면 실제로 db에 제대로 저장이 되었는지 확인해봐야겠죠. 다른 데이터베이스를 사용하시는 분들은 정상적으로 조회가 되겠지만~ h2 데이터베이스를 사용하시는 분들은 하나의 관문이 또 기다리고 있습니다.
슬퍼하는 웹 페이지 아이콘(?)이 우리를 기다리는군요. iframe도 보안 이슈중에 하나라서 스프링이 자동으로 막아버렸다고 합니다. 다시 SecurityConfigure로 가봅시다.
이 옵션을 추가해주면 iframe 문제가 발생하지 않을겁니다. 여기까지 끝내시면 h2 데이터베이스를 이용하시는 분들도 정상적으로 조회가 가능할 겁니다. 추가로 http옵션은 다 한 줄로 길게 늘여서 쓸 수 있습니다.
가독성이야 뭐 기능별로 줄바꿈을 해주면 되는 거라서 http의 중복 제거를 위해 이렇게 쓰는 게 아닌가 싶습니다. 이어 붙이고 싶은데 두 옵션이 안 붙는다 하시는 분들은 .and()를 써주세요. 그러면 해결될 겁니다.
'web > spring&spring boot' 카테고리의 다른 글
[spring boot] 로그아웃 기능 구현하기 (0) | 2021.05.15 |
---|---|
[spring boot] 로그인 기능 구현하기 (0) | 2021.04.25 |
[spring boot] spring security를 이용한 회원가입 기능 구현 (0) | 2021.04.22 |
[Gradle] compile 대신 implementation을 쓰는 이유 (0) | 2021.04.15 |
[spring boot] 스프링 부트 h2 데이터베이스 영구 저장 (0) | 2021.04.01 |