<button type="button" class="btn btn-danger" sec:authorize="hasRole('ROLE_ADMIN')"
th:onclick="|deleteBoard(*{id})|">삭제</button>
삭제 버튼을 사용자 권한에 따라 구성 (관리자만 삭제 버튼이 보이도록 함)
js로 구성, 실제 삭제를 위해 API 호출
BoardApiController
@DeleteMapping("/boards/{id}")
void deleteBoard(@PathVariable Long id) {
repository.deleteById(id);
}
form.html
<script>
function deleteBoard(id) {
$.ajax({
url: '/api/boards/' + id,
type: 'DELETE',
success: function (result) {
console.log('result', result);
alert('delete confirm');
window.location.href = '/board/list';
}
});
}
</script>
버튼만 가리면 postman에서 delete요청을 보냈을 때 삭제가 되기 때문에 보안에 취약하므로 서버단에서 설정을 해줘야 한다.
MethodSecurityConfig
@Configuration
@EnableMethodSecurity(
prePostEnabled = true,
securedEnabled = true,
jsr250Enabled = true)
public class MethodSecurityConfig {
}
admin일때만 버튼이 보이고 삭제요청이 가능하며, 일반 사용자는 버튼이 보이더라도 삭제를 눌렀을 때 아무 요청이 일어나지 않는다.
'온라인 강좌 > 유튜브 강의' 카테고리의 다른 글
Spring Boot 14. Mybatis 세팅하고 데이터 조회하기 (0) | 2024.02.25 |
---|---|
Spring Boot 13. JPA를 이용한 커스텀 쿼리 만들기 (0) | 2024.02.21 |
Spring Boot 11. JPA로 조회방법(FetchType) 설정하기 (0) | 2024.02.20 |
Spring Boot 10. JPA를 이용하여 @OneToMany 관계 설정하기 (0) | 2024.02.20 |
Spring Boot 9. Spring Security를 이용한 로그인 처리 (0) | 2024.02.19 |