Web 개발/게시판 만들기 (14) 썸네일형 리스트형 [JPA/Thymeleaf] 게시글 작성자만 수정하게 하기(2) 💡 이전 내용 지난 글에서 게시글 작성시, 사용자 정보를 저장하였습니다. 이번 글에서는 게시글 조회 시, 작성자 정보를 가져와서 작성자에게만 수정/삭제 버튼이 보이도록 하겠습니다. 💻 구현 1. 게시글 내용 조회 BoardController.java @GetMapping("/{id}") public String detail(@PathVariable("id") Long id, Model model, @CurrentUser Account user){ // 게시글 BoardDto boardDto = boardService.getPost(id); model.addAttribute("boardDto", boardDto); ... return "board/detail"; } BoardService.java @Tra.. [JPA] 게시글 작성자만 수정하게 하기(1) 💡 이전 내용 지난 글에서 게시글 작성 기능과 로그인 기능을 구현하였습니다. 이번글에서는 JPA Auditing 을 활용하여 게시글을 누가 작성했는지에 대한 정보를 저장하겠습니다. 작성자 정보를 저장하여 추후 작성자만 게시글을 수정하거나 삭제하는 기능을 구현하겠습니다. 📖 개념 정리 1. Auditing Auditing를 활용하면 엔티티를 생성하거나 변경한 사람, 발생시점을 추적할 수 있습니다. 💻 구현 1. JPA Auditing 활성화 하기 @SpringBootApplication @EnableJpaAuditing @EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class) public cla.. [Spring Security/Thymeleaf] 로그인 기능 구현 (4) Role 설정 💡 이전 내용 Spring의 하위 프레임워크로 애플리케이션의 보안을 담당하며, 인증과 인가에 중점을 두고 있습니다. 지난 글에서는 인증의 대표적인 예시로 로그인 기능을 구현하였습니다. 이번 글에서는 인가의 대표적인 예시로 역할 및 권한 기능을 구현하겠습니다. 📖 개념 정리 1. 인가란? 엔터프라이즈 애플리케이션의 경우, 모든 사용자가 전체 애플리케이션에 접근할 수 있는 것은 아닙니다. Spring Security를 사용하면 역할과 권한을 기반으로 사용자의 접근을 제어할 수 있습니다. 2. 역할(Role)이란? 특정 수준의 권한 부여를 나타내며, 하나의 역할은 여러 권한을 가질 수 있습니다. 관리자, 사용자, 영업사원, 고객센터 등이 있습니다. 3. 권한(Authority, Operation)이란? 보다 .. [Spring Security] 로그인 기능 구현 (3) 회원 가입 기능 💡 이전 내용 UserDetails 인터페이스를 활용하여 로그인 기능을 구현하였습니다. 이번 게시글에서는 회원가입 화면을 생성하고, 회원 가입 기능을 구현하겠습니다. 💻 화면 구현 회원 가입 화면은 다음과 같이 부트스트랩기반의 MDB에서 제공하는 화면을 사용하였습니다. https://mdbootstrap.com 1. 회원 가입 화면 Create an account Your Name Your ID (Email) Password Repeat your password I agree all statements in Terms of service Register Have already an account? Login here .custom-invalid-input { border-color: #dc3545; pa.. [Spring Security] 로그인 기능 구현 (3) 로그인 기능 확장 💡 이전 내용 Spring Security의 개념을 알아보고, 스프링 시큐리티에서 제공하는 기본 로그인 기능을 사용하였습니다. 이번 글에는 로그인 화면을 생성하고, 로그인 기능을 구현하겠습니다. 로그인 기능은 UserDetails 인터페이스를 구현하며 오버라이딩한 메소드를 통해 구현하겠습니다. 💻 로그인 화면 구현 로그인 화면은 다음과 같이 부트스트랩에서 제공하는 로그인 화면을 사용하였습니다. 1. 부트스트랩 예제 다운로드 부트스트랩 홈페이지에 접속하여, 예제를 다운로드합니다. https://getbootstrap.com/docs/5.2/examples/ 다운로드한 파일의 압축을 해제하여 bootstrap-5.2.0\site\content\docs\5.2\examples\sign-in 위 경로에 있는 s.. [Spring Security] 로그인 기능 구현 (1) Spring Security Authentication ✍️ 개념 정리 1. Spring Security란? Spring 기반 애플리케이션 보안을 위한 표준 프레임워크로, 인증과 인가를 담당합니다. 2. 인증(Authentication)과 인가(Authorization) 인증이란? 특정 리소스에 접근하려는 사람의 신원을 확인하는 방법을 의미합니다. 일반적으로 사용자에게 이름과 암호를 입력받는 방법이 있습니다. 인가(권한 부여)란? 특정 리소스에 접근할 수 있는 사람을 결정하는 방법을 의미합니다. Spring Security에서 제공하는 인가 방식에는 Request 기반 과 Method 기반 이 있습니다. Rrequest(요청) 기반 인가란? URL에 사용자의 접근을 제어하는 방법이며, Method(방법) 기반 인가란? Method에 사용자의 접근을 제어하는 .. [Thymeleaf/Bootstrap5] 게시판 댓글 조회 및 수정 화면 구현 - 실패 실행 결과: 소스 코드: Comments 이름 작성시간 수정 Bootstrap5 의 Collapse 를 활용하였습니다 https://getbootstrap.com/docs/5.0/components/collapse/ 코드 설명: data-bs-target='.multi-collapse-'+${comment.id} th:classappend="'multi-collapse-'+${comment.id}" 버튼 제어 대상이 한개 이상이기 때문에 id가 아닌 class로 설정하였습니다. aria-expanded="false" class="collapse show" 버튼에 aria-expanded="false" 속성을 적용하여 요소가 열려있는지 접혀있는지 여부를 버튼에서 설정하지 않고, 기본적으로 열려있어야 하는 .. [Spring Boot/Thymeleaf] Thymeleaf layout 설정 Thymeleaf layout 머리글, 바닥글, 메뉴 등의 공통 페이지 구성요소를 공유하여, 페이지의 컨텐츠에 집중할 수 있습니다. 개발 환경 Spring Boot : 2.5.2 Java 11 Thymeleaf Gradle 1. Dependency 추가 Gradle의 경우 dependencies { implementation group: 'com.github.zhanhb', name: 'thymeleaf-layout-dialect', version: '2.4.1' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web.. 이전 1 2 다음