[Spring Security] HttpSecurity Deprecated Method

chrkb1569·2023년 11월 3일
0

Spring

목록 보기
7/11

정말 오랜만의 Spring Security 글입니다.
최근까지 UMC에서 프로젝트를 진행했었는데, 저는 여기서 OAuth 로그인을 구현해야하는 상황이었기에, Security 설정을 해주기 위해 다음처럼 코드를 작성하였습니다.

엥 그런데 이전까지 못보던 빨간줄이 생기더라구요
그래서 확인해보니까


버전이 바뀌면서 이제는 지원하지 않도록 변화하는 모양입니다.
뭐 아직까지는 정상적으로 구현하는 것 같습니다만, 불편하긴해요.

https://docs.spring.io/spring-security/site/docs/current/api/deprecated-list.html

공식 문서에 들어가서 확인해보니까 2023년 11월 4일 기준 최신 버전이 6.1.5긴 한데 7부터는 지원하지 않도록 변화할 예정인 것 같습니다.

그래서 오늘은 이 부분을 최신 버전으로 어떻게 해결할 수 있는지 알아보고, 동작하는 것까지 확인해보도록 하겠습니다.

Security 프로젝트 생성

일단 프로젝트 대충 하나 만들어줍시다.

그리고 다음처럼 상태를 확인할 Controller를 하나 만들었습니다.

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StatusController {
    @GetMapping("/health")
    public String getStatus() {
        return "Status is Ok!";
    }
}

일단 정상적으로 작동하는 것을 확인할 수 있었습니다.

그럼 이제 Security 설정 파일을 만들어보겠습니다.

https://docs.spring.io/spring-security/reference/migration-7/configuration.html#_use_the_lambda_dsl

기존의 HttpSecurity가 제공하던 메서드는 다음처럼 람다를 사용하는 방식으로 변경되었는데요,

일단 저는 예전처럼 csrf, formLogin, logout 속성을 사용하지 않도록 변경해보겠습니다.

오....

그럼 이번에는 접근 제한을 걸어보겠습니다.

서버 상태를 확인할 수 있는 /health만 제외하고는 나머지는 모두 접근 제한을 걸어보도록 하겠습니다.

접근 확인

일단 접근 제한이 되어있는 URL은 다음처럼 접근이 거부되는 것을 확인할 수 있으며,

접근이 허용되어있는 URL은 다음처럼 정상적으로 접근되는 것을 확인할 수 있었습니다.

람다로 바뀌었다는 점 빼고는 이전이랑 비슷한 것 같습니다.
Security 버전이 바뀌면 사라질테니 람다에 익숙해져야겠네요..

0개의 댓글