백엔드 개발자로서의 덕목은 많고도 많지만, 이 중에 보안을 빼두고는 설명할 수 없을 것입니다. 어떠한 웹 사이트를 해도 보안은 정말 중요합니다. 이 중, 오늘은 보다 재미있었던 로그인 보안을 먼저 다루어 보겠습니다.
먼저 Security를 사용하기 위하여 pom.xml에 의존성을 추가해주어야 합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
이렇게 말이죠! 그럼 우선 사용할 준비는 끝났습니다.
먼저 security로 사용할 class를 만들어줍니다.
SecurityConfig라고 만들어주세요.
다음은 class에 @EnableWebSecurity를 붙여주세요.
이렇게 된다면 현 상황에서는 모든 페이지를 로그인 이후에 들어갈 수 있게 된답니다.
하지만, 이렇게 된다면 결론적으로는 좋겠지만, 테스트하는 동안은 너무 불편하겠죠?? 게다가 아직 로그인 세션도 안 만들었는데....
그래서 아래와 같이 configure 메소드를 override받아서 만들어줍니다.
위 사진 중에서 아래 authorizeRequests메소드와 antMatchers메소드를 확인하시면 되는데, 먼저 authorizeRequests는 '앞으로 시큐리티를 ~~하게 처리하겠다' 라고 생각하시면 됩니다. 그리고 그 아래의 antMatchers는 이 시큐리티를 지정할 특정 경로를 지정합니다.
결론적으로 저 의미는 localhost:8080/, /user/~, /follow/~, /image/~~의 직접 접근을 제한하겠다라는 뜻입니다.
그리하여 다른 컨트롤러의 요청은 로그인 이후에 허락되며, 테스트컨트롤러에서의 /test/~형식의 요청만이 직접 접속이 가능합니다. 물론 완성이후에는 제거해야만 할 것 같습니다. 백도어의 밥이 되겠네요.