개인 학습 메모장 (104) 썸네일형 리스트형 Spring Security 4: Security Filter #3 인가 처리 인가 -> 권한을 부여 특정 사용자만 특정 작업을 할 수 있게 함 인가 처리는 두 개의 작업으로 구분 인증된 사용자와 권한을 매핑해야 함 예시) ROLE_USER, ROLE_ADMIN, ROLE_ANONYMOUS 보호되는 리소스에 대한 권한 확인 관리자 권한을 가진 사용자만 관리자 페이지에 접근 가능 FilterSecurityInterceptor 필터 체인 상에서 가장 마지막에 위치하며, 사용자가 갖고 있는 권한과 리소스에서 요구하는 권한을 취합하여 접근을 허용할지 결정함 실질적으로 접근 허용 여부 판단은 AccessDecisionManager 인터페이스 구현체에서 이루어짐 해당 필터가 호출되는 시점에서 사용자는 이미 AccessDecisionManager에서 인증이 완료된 상태며, Authe.. Spring Security 3: SecurityFilter #2 DefaultLoginPageGeneratingFilter 로그인페이지 연결해주는 필터 스프링 시큐리티를 적용했을 때 자동으로 생성되는 로그인 페이지 AuthenticationProcessingFilter 1. 사용자가 인증 요청을 보내면 AuthenticationProcessingFilter를 거친다. 2. 인증 필터에서는 검증되지 않은 Authentication 객체를 생성해서 AuthenticationManager에 전달한다. 3. AuthenticationManager는 인증은 검증하고 인증된 정보(인가 등)을 다시 반환하고 사용자의 인증 과정이 완료된다. 큰 흐름은 위 순서로 진행되며 앞서 작성한 객체들은 모두 인터페이스로 작성되어 있으며 알맞은 구현체에서 작업을 수행한다. 구현체(번외) Aut.. Spring Security 2: SecurityFilter #1 이번 시간에는 스프링 시큐리티의 다양한 필터들에 대해 하나씩 알아보도록 하자. 그 전에 필터와 인터셉터의 차이 먼저 짚고 넘어가자. 필터 - 자바의 서블릿 기반 웹 애플리케이션에서 사용된다. 즉, 서블릿 명세에 정의된 구성 요소로서 웹 애플리케이션의 요청과 응답을 가로채는 역할을 한다. 인터셉터 - 스프링 프레임워크에서 제공되는 기능(디스패처 서블릿이 컨트롤러로 요청을 전달하기 전후로 특정 작업을 전달하는 기능 필터는 요청이 들어오자마자 처음으로 거치는 단계. 스프링 컨텍스트 외부에서 작동하며 톰캣 같은 서블릿 컨테 이너 수준에서 작동 인터셉터는 필터를 거친 후, 스프링의 DispatcherServlet이 컨트롤러로 요청을 처리하기 전과 후에 동작 사실 위와 같이 설명을 했지만 스프링 버전 1.2부터 D.. MySQL 기본: SQL 고급 MySQL의 데이터 형식 MySQL에서 지원하는 데이터 형식의 종류 숫자 데이터 형식 문자 데이터 형식 날짜와 시간 데이터 형식 기타 데이터 형식 변수의 사용 SET @변수이름 = 변수의 값; // 변수 선언 및 값 대입 SELECT @변수이름; // 변수의 값 출력 SET @myVar1 = 5; SELECT @myVar1, Name FROM users WHERE height > 180; //이런식으로 사용 가능 데이터 형식과 형 변환 SELECT AVG(amount) AS '평균 구매 개수' FROM buys; SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수' FROM buys; SELECT CONVERT(AVG(amount), SIGNED INTEG.. MySQL 기본: SQL 기본 SELECT 문 원하는 데이터를 가져와 주는 기본적인 use 테이블 이름 USE employess; SELECT * FROM employees.titles; SELECT * FROM titles; SELECT first_name FROM employees; 작성 방법은 위와 같으며 특정 테이블에서 모든 속성, 특정 속성을 가져올 수 있고 특정 테이블의 속성에서 값을 가져올 수 있다. 특정한 조건의 데이터만 조회하는 SELECT * FROM USERS WHERE name = '김경호'; //기본적인 where절 SELECT userId, Name FROM users WHERE birthYear >= 1970 AND height >= 182; // 관계 연산자 이용 SELECT name, height FRO.. MySQL 기본: 데이터베이스 모델링 프로젝트의 진행 단계 프로젝트: 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정 과거, 큰 규모의 프로젝트인 경우 무작정 코딩을 하는 경우가 많아 실패하는 경우가 많았다. 따라서 '소프트웨어 개발 방법론'이 나타났는데 가장 오래되고 전통적인 방법론은 폭포수 모델이다. 이 과정은 프로젝트의 계획 -> 업무 분석 -> 시스템 설계 -> 프로그램 구현 -> 테스트 -> 유지보수의 단계를 거친다. 하지만 프로젝트의 도중 요구사항이 바뀌거나 변화하는 요소가 자주 발생하기 때문에 요즘에는 애자일 방법론을 많이 선택하는 추세이다. 이렇듯 복잡한 시스템을 성공적으로 구현하기 위해서는 설계가 굉장히 중요하다. 데이터베이스 모델링 데이터베이스 모델링 개념 데이터베이스 모델링: 현실에서 쓰이는 것을 테이블로 변경하.. MySQL 설치 및 DB 구축과정 미리 실습하기: MySQL 전체 운영 실습 chapter 2는 MySQL 설치법만 나와 있어서 공식문서만 봐도 충분하기에 다음 챕터를 정리하고자한다. 요구사항 분석과 시스템 설계 그리고 모델링 정보시스템 구축 절차 요약 정보시스템을 구축하기 위해서는 일반적으로 분석 -> 설계 -> 구현 -> 시험 -> 유지보수 의 단계를 거친다. 분석 단계는 시스템, 요구사항을 분석하며 우리가 무엇(what)을 할지 결정한다. 다음으로 설계 단계에서는 우리가 구축하고자 하는 시스템을 어떻게(how)할 것인지 결정한다. 이 과정이 시스템을 구축하는데 가장 중요하고 많은 시간이 쓰이는 부분이기도 하다. 너무 추상적이므로 다음의 도서관리 시스템 예시를 통해 이해해보자 분석 단계: 사용자는 웹사이트를 통해 도서를 검색하고 선택할 수 있어야 한다. 사용자는 선택한 도서를.. Spring Security 1: Spring Security 이번 스프링 시큐리티를 공부하며 느낀 것인데 스프링 시큐리티 라는 프레임워크는 방대하고 디버깅, 내부 코드를 들여다보지 않는다면 이해하기가 쉽지 않다는 생각이 들었다. 따라서 공부의 깊이는 아래의 요구사항을 만족하는 코드를 작성하는 데 문제가 없을 정도로 할 생각이다. 너무 방대한 프레임워크이기도 하고 앞으로 내가 서비스를 개발 하며 로그인을 직접 구현하는 일은 없을 것 같아(대부분의 서비스는 이미 개발되어 있는 기능 이라고 생각) 목표 설정을 아래와 같이 잡았다. 1. 새롭게 변경된 스프링 시큐리티 버전 6.1 코드 2. 스프링 세션과의 통합 3. 토큰 기반 사용자 인증 4. OAuth 인증 스프링 시큐리티란? 강력하고 커스터마이징 가능한 인증, 인가처리 프레임워크 스프링 베이스 어플리케이션의 사실상 .. 이전 1 2 3 4 5 6 7 8 ··· 13 다음