Role 사용을 해보자
내 프로젝트의 경우 ADD버튼이 admin으로 로그인했을 때만 나타나야 한다.
- Role
@Getter
@AllArgsConstructor
public enum Role {
ROLE_ADMIN("관리자", RoleBase.ADMINISTRATOR),
ROLE_USER("사용자", RoleBase.USER);
private String text;
private RoleBase roleBase;
public static List<Role> findByRoleBase(RoleBase roleBase) {
return Arrays.stream(Role.values()).filter(p -> p.getRoleBase().equals(roleBase))
.collect(Collectors.toList());
}
}
일단 role은 ROLE_ADMIN과 ROLE_USER로 설정
DB에 admin 계정을 하나 넣어준다.(이를 처음 실행할 때 자동으로 넣어주도록 data.sql 파일을 생성해 넣어줘야 하는데 아직 구현하지 않았다.. 현재는 수동으로..!)
- add버튼 관련
<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<!-- admin-->
<a class="addButton" th:text="|ADD|" th:href="|@{/project/edit}|" sec:authorize="hasRole('ROLE_ADMIN')"></a>
저렇게 설정하면 admin계정으로 로그인하면 add버튼이 보이고 logout 하면 보이지 않는다.
❗ 추가적으로 아예 관리자 대시보드를 만들려면 Controller에 어노테이션을 넣어준다. ❗
@Secured("ROLE_ADMIN")
그러면 해당 controller가 작동할 때는 admin계정으로 로그인했을 때이다.
'Web > Spring' 카테고리의 다른 글
[DB] 초기 데이터 삽입 (0) | 2021.08.10 |
---|---|
[ERROR] Error parsing HTTP request header (0) | 2021.08.10 |
[Login구현] 사용자 등록하기(Register) (0) | 2021.08.10 |
[Login구현] login-logout구현(setting) (0) | 2021.08.10 |
[MultipartFile] 첨부파일 다운로드 (0) | 2021.08.06 |