테스트하고자 하고자 하는 Repository 코드는 다음과 같다. BoardRepositoryImpl public class BoardRepositoryImpl implements BoardRepositoryCustom { private final JPAQueryFactory queryFactory; public BoardRepositoryImpl(EntityManager em) { this.queryFactory = new JPAQueryFactory(em); } @Override public Page findPagePostList(RetrievePostListCondition retrievePostListCondition, Pageable pageable) { JPAQuery query = query..
기술 블로그/MOLLY
AccountApiController @PatchMapping("/auth/account") public ResponseEntity updateAccountProfile(@RequestBody @Valid InputNicknameRequest inputNicknameRequest, BindingResult bindingResult, @AuthenticationPrincipal PrincipalDetails principalDetails) { accountService.updateAccountNickname(principalDetails.getAccount().getId(), inputNicknameRequest.getNickname()); return new ResponseEntity(new Respon..
사용자 요청 시 권한 처리에 관하여 현재 로그인을 통해 액세스 토큰을 받은 사용자는 인증이 필요한 '/auth' 자원에 요청할 수 있다. 의문점 회원가입 시 추가적인 정보를 입력받는데 요청 url이 다음과 같다. http://localhost:8080/api/auth/account/save/{id} 이때 사용자는 부여 받은 액세스 토큰을 함께 전송해야 한다. 여기서 나는 다음과 같은 고민을 하였다. 가정) 회원가입을 요청하는 사용자의 id가 1인데 값을 2로 하여 서버에 액세스 토큰과 함께 보내면 엉뚱한 사람의 정보가 수정된다는 것이다. 해결방안 해결방안1. @AuthenticationPrincipal 애노테이션으로 권한 처리 스프링 시큐리티를 사용하면 컨트롤러 파라미터에서 사용할 수 있는 @Authen..
개요 소개 molly 프로젝트는 반려동물의 건강 관리를 수월하게 하고자 반려동물 건강 및 예방접종 일정 관리를 도와주는 웹 서비스이다. molly 프로젝트는 백엔드로 스프링을 사용하고 프론트엔드로 리액트를 사용한다. 스프링과 리액트는 rest api 방식으로 통신한다. 스프링에서는 스프링 시큐리티를 사용한다. oauth2 소셜 로그인 기능을 지원한다. 구글, 카카오 소셜 로그인이 완료되면 사용자는 서버로부터 액세스 토큰과 리프래시 토큰을 발급받는다. jwt 토큰 방식 사용 소셜 로그인 기능을 지원하는 이유 편리성 소셜 로그인은 사용자가 따로 가입을 하지 않아도 되므로 가입 절차를 간소화시킬 수 있다. 또한, 다른 사이트에서 이미 사용 중인 계정을 활용해 로그인할 수 있으므로 로그인 절차 자체도 간편하다...