( ์ ๊ฐ ์์ ํ๋ ํ๋ก์ ํธ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ํ๊ณ ์์ต๋๋ค.)
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 ํ์ด์ง ๊ฐ์ ์ ๊ทผ์ ์ ๊ทผ ๋ถ๊ฐ ์ฐฝ
