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

김어진님의 프로필 이미지

작성한 질문수

스프링 시큐리티

인가 질문입니다.

22.04.24 20:24 작성

·

150

0

안녕하세요 강사님, 강사님 강의를 수강한 덕분에

액세스 토큰과 리프레시 토큰을 사용한 인증, 인가를 구현할 수 있었습니다. 

 

개인 앱 프로젝트를 진행하고 있는 중에 각각의 회원마다 자동으로 매 규칙적인 시간마다

REST API를 실행할 수 있도록 @Scheduled 사용했습니다. 

저 어노테이션을 사용할 때는 인가가 필요한 지 궁금합니다. 사용자가 앱을 사용하지 않을 때도

REST API가 실행되야 하는데 인가로 사용한 antMatcher로 설정하지 않으면 될까요? 

 

항상 좋은 강의 감사합니다. 

 

 

답변 2

0

김어진님의 프로필 이미지
김어진
질문자

2022. 04. 26. 13:17

답변해주셔서 정말 감사합니다. 사용자들이 인증한 상태에서 사용자의 액션이 없이도 실행이 되도록 

설정을 해야합니다. 

 

//사용자 정보 깨내기
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Account account = (Account) authentication.getPrincipal();

위 코드는, @Scheduled를 사용한 메세드 내부로 규칙적인 시간마다 자동으로 오픈 api를 사용자가 어플을 사용하지 않는 동안에도 데이터를 받을 수 있도록 하고 싶은데 로그인을 한 후, 쓰레드 풀에 객체가 담기니 계속해서 데이터를 받을 수 있나요? 

 

제가 구현하고 싶은 기능을 정리하면 

1. 로그인을 하고 jwt 토큰을 담아 전송

2. jwt 확인 후, 객체를 꺼내서 위치 좌표를 사용해서 오픈 api 사용하기

3. 앱을 사용하지 않는 동안에도 매 시간마다 좌표를 꺼내서 api 호출 

이렇게 구현하려고 합니다.

로그아웃을 하지 않는 이상 계속해서 쓰레드 풀에 있는 객체를 사용할 수 있나요? 

0

정수원님의 프로필 이미지
정수원
지식공유자

2022. 04. 25. 22:53

웹 기반이 아닌 백그라운드 기반으로 서비스를 실행할 경우인 것 같습니다.

사용자가 앱을 사용하지 않을 경우에 기능이 실행되어야 한다면 사용자의 인증유무와 상관없이 실행되어야 한다는 의미인지요?

아니면 사용자들이 인증한 상태에서 사용자의 액션이 없어도 실행되어야 한다는 의미인가요?

죄송하지만 조금 더 상세한 설명 부탁드립니다.