[Spring] 스프링 시큐리티
programming/spring

[Spring] 스프링 시큐리티


18. 스프링 시큐리티


18.1 스프링 시큐리티의 개요


18.1.1 웹 보안의 3요소


18.1.1.1 인증(Authentication) : 애플리케이션의 작업을 수행할 수 있는 주체(사용자). 현재 접속중인 사용자가 누구인지 확인하는 과정

18.1.1.2 권한 인가(Authorization) : 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되어 있는지 증명하는 과정. 현재 사용자가 특정 url에 접속할 권한이 있는지 검사하는 과정

18.1.1.3 UI 처리 : 권한이 없는 사용자가 접근할 경우의 에러 화면 등을 보여주는 과정


18.1.2 스프링 시큐리티


개발자가 직접 처리하던 보안 처리 과정을 스프링 프레임웍에서 제공하는 스프링 시큐리티를 사용하여 사용권한 관리, 비밀번호 암호화, 회원가입 처리, 로그인, 로그아웃 등의 웹 보안 관련 기능 개발을 쉽게 처리할 수 있음.



18.2 실습소스


18.2.1 회원정보 테이블 생성

CREATE TABLE Users (

userid    VARCHAR2(255)    NOT NULL,

passwd    VARCHAR2(255)    NOT NULL,

name    VARCHAR2(255)    NOT NULL,

enabled    NUMBER(1)    DEFAULT 1,

authority    VARCHAR2(20)    DEFAULT 'ROLE_USER'

PRIMARY KEY(userid)

);


18.2.2 pom.xml

18.2.3 WEB-INF/web.xml

18.2.5 WEB-INF/spring/appServlet/servlet-context.xml

18.2.6 WEB-INF/spring/root-context.xml

18.2.7 src/main/resources/mybatis-config.xml

18.2.8 src/main/resources/log4j.xml

18.2.9 src/main/resources/log4jdbc.log4j2.properties

18.2.10 src/main/resources/logback.xml

18.2.11 model.dto.UserDTO.java

18.2.13 model.dao.UserDTOImpl.java

18.2.15 service.UserAuthenticationService.java

18.2.16 service.UserDeniedHandler.java

18.2.17 service.UserLoginFailureHandler.java

18.2.18 service.UserLoginSuccessHandler.java

18.2.19 controller.UserController.java

18.2.20 views/include/css/main.css

18.2.21 views/include/header.jsp

18.2.22 views/user/login.jsp

18.2.24 views/home.jsp

18.2.25 views/admin/main.jsp