26. 회원가입 로직 누락
by 볼빵빵오춘기RestApiController.java - 코드 추가
package com.cos.jwt.controller;
import com.cos.jwt.config.auth.PrincipalDetails;
import com.cos.jwt.model.User;
import com.cos.jwt.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
//@RequestMapping("api/v1")
@RequiredArgsConstructor
public class RestApiController {
private final UserRepository userRepository;
private final BCryptPasswordEncoder bCryptPasswordEncoder;
@GetMapping("/home")
public String home(){
return "<h1>home</h1>";
}
@PostMapping("/token")
public String token(){return "<h1>token</h1>";
}
// Tip : JWT를 사용하면 UserDetailsService를 호출하지 않기 때문에 @AuthenticationPrincipal 사용 불가능.
// 왜냐하면 @AuthenticationPrincipal은 UserDetailsService에서 리턴될 때 만들어지기 때문이다.
// 유저 혹은 매니저 혹은 어드민이 접근 가능
@GetMapping("/user")
public String user(Authentication authentication) {
PrincipalDetails principal = (PrincipalDetails) authentication.getPrincipal();
System.out.println("principal : "+principal.getUser().getId());
System.out.println("principal : "+principal.getUser().getUsername());
System.out.println("principal : "+principal.getUser().getPassword());
return "<h1>user</h1>";
}
// 매니저 혹은 어드민이 접근 가능
@GetMapping("/manager/reports")
public String reports() {
return "<h1>reports</h1>";
}
// 어드민이 접근 가능
@GetMapping("/admin/users")
public List<User> users(){
return userRepository.findAll();
}
@PostMapping("/join")
public String join(@RequestBody User user) {
System.out.println("1 - controller user : "+user);
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
System.out.println("2 - controller user : "+user);
user.setRoles("ROLE_USER");
System.out.println("3 - controller user : "+user);
userRepository.save(user);
System.out.println("4 - controller user : "+user);
return "회원가입완료";
}
}
'강의 따라하기 > JWT' 카테고리의 다른 글
28. JWT 토큰 만들어서 응답하기 (0) | 2024.08.25 |
---|---|
27. JWT를 위한 강제 로그인 진행 (0) | 2024.08.25 |
25. JWT를 위한 로그인 시도 (0) | 2024.08.25 |
24. JWT 임시 토큰 만들어서 테스트 해보기 (0) | 2024.08.25 |
23. JWT Filter 등록 테스트 (0) | 2024.08.25 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기