인프런 커뮤니티 질문&답변

pwn2own님의 프로필 이미지
pwn2own

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

API 개발 고급 정리

Spring Security 관련 질문입니다.

작성

·

567

0

안녕하세요!

로드맵대로 강의를 마치고 이제 실제로 토이 프로젝트를 구현해보고 있습니다.

Authorization 헤더에 JWT토큰을 태워서 보내는 형태로 인증을 구현하려고 하는데요.

보통 Spring Security를 사용한다고 나와있어서 해당 라이브러리를 같이 설치한다음 작업하고 있습니다.

관련해서 검색하면서 살펴보고 있는데 제공하는 기능들이 너무나도 많아서 실무에서는 어떤걸 많이 사용하는지 정말 헷갈리네요.

찾아보니 @Secured, @PreAuthorize, @RolesAllowed 라는 3가지의 방법이 존재하는 것 같은데, 실무에서는 어떠한 방법을 사용하나요?

(물론 요구사항에 따라 다르겠지만 일반적으로 사용하는걸 알려주시면 제가 검색해서 찾아보겠습니다ㅎㅎ개인적으로는 @PreAuthorize를 사용해서 엔드포인트마다 권한을 세분화하는게 좋다고 생각합니다.)

답변 2

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. teamhide님

어떤 방법을 사용하셔도 괜찮을 것 같아요.

여기서 드리고 싶은 조언은 학습을 하신다면 스프링 시큐리티, JWT없이 세션과 필터로 로그인 기능을 구현하시기를 추천합니다.

그래야 웹 애플리케이션을 깊이있게 이해할 수 있습니다.

감사합니다.

0

pwn2own님의 프로필 이미지
pwn2own
질문자

한가지 질문이 더생겨서 작성합니다.

찾아보니 Interceptor라는 기능도 있어서 filter와 둘 중 무엇을 사용할 지 고민이 되네요.

저는 현재 특정 엔드포인트(컨트롤러)마다 별도의 권한을 부여하는 기능이 필요합니다.

그래서 Interceptor만으로도 충분히 구현이 가능할 것으로 생각이 됩니다.

<질문>

1. 찾아보니 로깅과 같이 전역적으로 처리해야하는 부분은 filter를 사용하고 엔드포인트(컨트롤러) 별로 디테일하게 인증/권한 처리는 interceptor로 한다는 글을 봤는데 위에 말씀드린 제 요구사항에 따르면 interceptor로 구현하는것도 괜찮은 방법이라고 생각합니다. 이 부분에 대해서 영한님의 생각을 듣고 싶습니다.

2. 실무에서는 인증처리와 관련해서 일반적으로 어떤것을 사용하나요?

감사합니다.

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. teamhide님

둘 중에 아무것이나 사용해도 되지만, interceptor를 사용하는 것이 더 편리합니다.

필터와 인터셉터의 사용성에 대한 차이는 조만간 출시 예정인 MVC 2편에서 자세히 설명드립니다^^

감사합니다.

pwn2own님의 프로필 이미지
pwn2own
질문자

감사합니다!

pwn2own님의 프로필 이미지
pwn2own

작성한 질문수

질문하기