페이지 권한 설정 1. 상품 등록 페이지 ADMIN (관리자) 계정만 접근할 수 있는 상품 등록 페이지 2. 상품 등록 페이지 접근 Controller 상품 등록 페이지에 접근하는 Controller 3. AuthenticationEntryPoint AuthenticationEntryPoint 인터페이스 구현 클래스 인증되지 않은 사용자가 리소스 요청 시 "Unauthorized" 에러를 발생시킴 4. SecurityConfig HttpServletRequset 에 대해서 security 처리를 수행 anyRequest() - 위에 존재하는 url patterns 들을 제외한 나머지 요청들 권한에 맞지 않는 사용자가 리소스에 접근할 때 수행되는 핸들러 static 디렉터리의 하위 파일은 인증을 무시하도록..
로그인 / 로그아웃 1. UserDetailsService 데이터베이스에서 회원 정보를 가져오는 인터페이스 loadUserByUsername() 메소드를 통해 회원정보를 조회 -> UserDetails 인터페이스 반환 2. UserDetails 회원 정보를 담는 인터페이스 직접 구현하거나 스프링 시큐리티에서 제공하는 User 클래스 사용 (구현체) 3. MemberService 로그인 / 로그아웃 구현 UserDetailsService 인터페이스를 구현하고 loadUserByUsername() 메소드 오버라이딩 Builder 패턴을 이용하여 UserDetail 인터페이스를 구현한 User 객체 생성 후 반환 @Override public UserDetails loadUserByUsername(String..
회원가입 로직 1. 회원 역할(Role) 구분 com.shop.constant.Role.java, enum 클래스 생성 일반 유저 / 관리자 package com.shop.constant; public enum Role { USER, ADMIN } 2. 회원 가입 정보 DTO 회원 가입 화면으로 부터 넘어오는 가입정보를 담을 DTO 객체 @Getter @Setter public class MemberFormDto { private String name; private String emial; private String password; private String address; } 3. Member Entity 회원 정보를 저장하는 Member Entity(Model) 생성 Member 객체를 생성하기 ..
Spring Security 1. Spring Security Spring 기반 애플리케이션의 보안(인증과 인가 등)을 담당하는 스프링 하위 프레임워크 2. Spring Security 구조 Spring Security 기능은 request 가 DispatcherServlet 에 도달하기 전에 수행되야함 Servlet Container 에서는 Spring Container Bean 객체 사용 불가 따라서 DelegatingFilterProxy 가 SpringSecurityFilterChain 을 찾아 보안 처리 위임 FilterChainProxy 를 SpringSecurityFilterChain 이라는 이름으로 구현 FilterChains 에는 여러 filter 존재 WebSecurityConfigure..
Layout Dialect 1. Thymeleaf Layout Dialect 의존성 주입 nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 2.5.1 2. header / footer / layout 생성 resources/templates/fragments/header.html, header.html resources/templates/layouts/layout1.html 3. header / footer 코드 다른 페이지 (layout)에 포함시킬 영역을 th:fragment 로 선언 header footer 4. layout 코드 layout 기능을 사용하기 위해서 layout 네임스페이스 추가 script, css 를 추가할 영역을 layout:fragment..
Thymeleaf 1. Thymeleaf 컨트롤러가 전달한 가공된 데이터를 이용하여 동적으로 화면을 구성하도록 지원하는 템플릿 엔진 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thy..