[스프링 부트] 28. 시큐리티로 권한 설정 - 웹 게시판 v5

KangHo Lee's avatar
Nov 28, 2024
[스프링 부트] 28. 시큐리티로 권한 설정  - 웹 게시판 v5
Contents
User Entity

User Entity

User.java
// User 엔티티 필드 @Column(nullable = false, columnDefinition = "varchar(255) default 'ROLE_USER'") private String role;
  • User 클래스에서 role 필드가 필요합니다.
  • 컬럼값은 ROLE_ADMIN, ROLE_MANAGER과 같이 ROLE_을 붙여야 합니다.
  • 회원가입 시 기본값은 ROLE_USER로 설정합니다.
@Override public Collection<? extends GrantedAuthority> getAuthorities() { return List.of(); }
  • 권한을 추가하는 메서드로 유저가 권한을 여러 개 가질 수 있으므로 List로 반환합니다.
// 시큐리티 필터 설정 http.authorizeHttpRequests(r -> r.requestMatchers("/s/**").hasAnyRole("USER", "ADMIN") .requestMatchers("/admin/**").hasAnyRole("ADMIN") .anyRequest().permitAll()) .formLogin(f -> f.loginPage("/login-form") .loginProcessingUrl("/login") .defaultSuccessUrl("/"));
  • 권한에 따라 접근 가능한 URL 설정
    • /s/로 시작하는 URL은 USER와 ADMIN 권한을 가진 유저만 들어갈 수 있습니다.
    • /admin/으로 시작하는 URL은 ADMIN 권한을 가진 유저만 들어갈 수 있습니다.
 
Share article

devleekangho