나는 컨트롤러 메소드에 API별로 @PreAuthorize를 넣었는데
시큐리티가 해당 어노테이션을 수행하지 않았다.
그래서 검색해봤다.

클래스 상단에 @EnableMethodSecurity를 붙여주면 해결된다.
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
아쉽게도 spring security6버전 이상 자료는 아직 많이 없는 듯 하다....
package com.nahwasa.springsecuritybasicsettingforspringboot3.controller;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/view")
@EnableMethodSecurity
public class ViewController {
@GetMapping("/login")
public String loginPage() {
return "login";
}
@GetMapping("/join")
public String joinPage() {
return "join";
}
@GetMapping("/dashboard")
public String dashboardPage(@AuthenticationPrincipal User user, Model model) {
model.addAttribute("loginId",user.getUsername());
model.addAttribute("loginRoles",user.getAuthorities());
return "dashboard";
}
@GetMapping("/setting/admin")
@PreAuthorize("hasAnyRole('ADMIN')")
public String adminSettingPage() {
return "admin_setting";
}
@GetMapping("/setting/user")
@PreAuthorize("hasAnyRole('USER')")
public String userSettingPage() {
return "user_setting";
}
}
@PreAuthorize not working after upgrading to Spring Boot 3 (Spring Security 6)
I have upgraded my Spring Boot Project to Spring Boot 3. I've also updated the WebSecurityConfig, it now looks like that: // imports... @Configuration @EnableWebSecurity @RequiredArgsConstructor p...
stackoverflow.com
'Java > Spring Boot' 카테고리의 다른 글
Junit & AssertJ (0) | 2023.12.02 |
---|---|
Thymeleaf 경로 설정하기 (0) | 2023.11.30 |
쿼리 파라미터찍기 (0) | 2023.11.08 |
실무에서 모니터링 사용하기 (0) | 2023.09.27 |
비즈니스 메트릭(모니터링) (0) | 2023.09.27 |