๋ชฉ์ฐจ
( ์ ๊ฐ ์์ ํ๋ ํ๋ก์ ํธ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ํ๊ณ ์์ต๋๋ค.)
1. ๊ถํ ์์ (EmployeeDetails.java)
// ๊ถํ ๊ด๋ จ ์์
์ ์ํ ๋ฉ์๋
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
Collection<GrantedAuthority> authorities = new ArrayList<>();
try {
// Employee์ authorityGrade๋ฅผ UserRole Enum์ผ๋ก ๋ณํ
UserRole role = UserRole.valueOf(employee.getAuthorityGrade());
// ๊ถํ์ ROLE_ ์ ๋์ฌ ๋ถ์ฌ ์ถ๊ฐ
authorities.add(new SimpleGrantedAuthority("ROLE_" + role.name()));
} catch (IllegalArgumentException e) {
// authorityGrade๊ฐ UserRole Enum์ ์ ์๋์ง ์์ ๊ฒฝ์ฐ ์๋ฌ ์ถ๋ ฅ
System.err.println("Invalid authorityGrade value: " + employee.getAuthorityGrade());
}
return authorities;
}
2. UserRole.java
ํด๋น Enum ๊ณผ ๋์ผ ๊ฐ์ด DB ์ ๋ค์ด๊ฐ๊ฒ ์ฒ๋ฆฌ
package com.project.tobe.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum UserRole {
S("๋ํ"),
A("๋ถ์ฅ"),
B("๊ณผ์ฅ"),
C("๋๋ฆฌ"),
D("์ฌ์");
private String value;
}
3. SecurityConfig.java
.antMatchers("/employee.do").hasAnyRole("S", "A")
// "/employee.do" ๊ฒฝ๋ก๋ "A","S" ์ญํ ์ ๊ฐ์ง ์ฌ์ฉ์๋ง ์ ๊ทผ ๊ฐ๋ฅ
S ๊ถํ ๋ก๊ทธ์ธ
D ๊ถํ ๋ก๊ทธ์ธ
์ง์ ๊ด๋ฆฌ ํญ์ด ๋ณด์ด์ง ์์
employee ํ์ด์ง ๊ฐ์ ์ ๊ทผ์ ์ ๊ทผ ๋ถ๊ฐ ์ฐฝ