gi_dor

마이페이지 ver.1- SpringSecurity, MySQL , MyBatis @PreAuthorize("isAuthenticated()") 본문

Back_End/SpringBoot

마이페이지 ver.1- SpringSecurity, MySQL , MyBatis @PreAuthorize("isAuthenticated()")

기돌 2024. 4. 22. 12:45
    @GetMapping("/mypage")
    public String myPage(Model model , Principal principal) {

        if (principal == null || principal.getName() == null ) {
            return "redirect:/user/login ";
        } else {
            model.addAttribute("id",principal.getName());
            return "redirect:/user/mypage";
        }
    }

 

Principal 객체를 사용해 현재 사용자의 정보를 가져옵니다.
사용자가 인증되지 않은 경우  principal이 null이거나 principal의 이름이 null인 경우 (둘다 같은말 아닌가 ?)
/user/login으로 리디렉션

Principal  객체는 사용자의 인증 정보를 나타내는데 사용되는데
사용자가 로그인하지 않은 상태라면 (principal이 null인 경우), 이것은 로그인되지 않은 상태를 나타냅니다

 

1차 변경된 코드

    @GetMapping("/mypage")
    public String myPage(Model model , Principal principal) {

        if (principal == null ) {
            return "redirect:/user/login ";
        } else {
            model.addAttribute("id",principal.getName());
            return "redirect:/user/mypage";
        }
    }

 

@PreAuthorize("isAuthenticated()")

@PreAuthorize("isAuthenticated()")

Spring Security에서 제공하는 어노테이션 중 하나입니다. 이메서드 또는 클래스에 적용하여 해당 메서드 또는 클래스의
실행 전에 사용자가 인증되었는지를 확인합니다.
만약 사용자가 로그인되어 있지 않으면 해당 메서드 또는 클래스에 접근할 수 없게된다.

isAuthenticated()
Spring Security의 표현식 중 하나로 , 현재 사용자가 익명이 아닌, 로그인 상태라면 true를 반환
현재 사용자가 인증되었는지를 나타내는데
인증된 사용자는 로그인한 사용자를 의미하며, Spring Security의 인증 프로세스를 통해 확인된 사용자이다

 


2차 변경된 코드

   @PreAuthorize("isAuthenticated()")
    @GetMapping("/mypage")
    public String myPage(Model model , Principal principal) {

        model.addAttribute("id",principal.getName());
        return "/user/mypage";
    }

 


 

실습 중 발생한 에러

 

https://gi-dor.tistory.com/236

 

[error] localhost에서 리디렉션한 횟수가 너무 많습니다

🔒 ERROR 문제 상황 기존코드 @GetMapping("/mypage") public String myPage(Model model , Principal principal) { if (principal == null || principal.getName() == null ) { return "redirect:/user/login "; } else { model.addAttribute("id",principal.getNa

gi-dor.tistory.com

 

 

728x90