Contents
User EntityUser 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