일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 콜백함수
- 고차함수
- 이벤트리스너
- 인프런무료강좌
- 인프런강의
- NPM
- 자바스크립트recude
- 인프런
- 자바스크립트객체리터럴
- slice
- 객체리터럴
- HTTP
- sort
- EntityFramework
- 자바스크립트함수
- 객체의비교
- 인프런인강
- 인터넷프로토콜
- .NET
- 자바스크립트파라미터
- 인프런강좌
- Blazor
- 자바스크립트틱택토
- 코딩
- 틱택토구현
- 인프런자바스크립트
- c#
- 비주얼스튜디오
- 제로초
- 자바스크립트
- Today
- Total
목록스프링 MVC 2편 - 인프런 김영한/섹션 6,7 - 로그인 처리 (6)
샐님은 개발중
1. 인터셉터 - 서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 해결하는 스프링 기술 서블릿 필터와는 적용되는 순서, 범위, 사용방법이 다르다. 2. 스프링 인터셉터 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 3. 스프링 인터셉터 체인 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 인터셉터1 -> 인터셉터2 -> 컨트롤러 4. 스프링 인터셉터 인터페이스 public interface HandlerInterceptor { // 컨트롤러 호출 전에 호출(정확히 핸들러 어댑터 호출전) default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object ha..
1. 로그인시 필터 추가 LoginCheckFilter,java - 인증 체크 필터 package hello.login.web.filter; import hello.login.web.SessionConst; import lombok.extern.slf4j.Slf4j; import org.springframework.util.PatternMatchUtils; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @Slf4j public..
1. 서블릿 필터란 - 컨트롤러 등에서 로그인 여부를 하나하나 로직 구현하지 않기 위해 사용 - 이렇게 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사 라고 하며 웹과 관련된 공통 관심사는 서블릿필터 또는 스프링 인터셉터를 사용하는 것이 좋음. 2. 서블릿 필터의 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 3. 필터 체인 - 필터를 여러개 설정할수 있다. HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 필터3 -> 서블릿 -> 컨트롤러 4.필터 인터페이스 - 필터 인터페이스를 구현,등록하면 서블릿 컨테이너가 필터를 싱글톤 객체로 생성,관리함. package hello.login.web.filter; import lombok.extern.slf4j.Slf4j; im..
1. HttpSession - 서블릿이 제공하고 JSESSIONID 라는 쿠키 이름을 생성하고 이것은 추정 불가능한 랜덤 값이다. 2. HttpSession 적용 1. SessionConst.java 생성 : HttpSession 에 데이터 보관,조회시 같은 이름 중복되므로 상수로 정의. package hello.login.web; public class SessionConst { public static final String LOGIN_MEMBER ="loginMember"; } 2. LoginController.java 수정 : 클라이언트에서 로그인 요청시 세션사용. @PostMapping("/login") public String loginV3(@Validated @ModelAttribute Lo..
package hello.login.web.session; import org.springframework.stereotype.Component; import org.thymeleaf.spring5.util.SpringRequestUtils; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; /* 세션 관리 */ @Compo..
1. 세션 - 서버에 중요한 정보를 보관하고 연결을 유지하는 방법 2. 세션 동작 방식 1) 클라이언트가 서버에 로그인 정보전달 2) 서버는 세션저장소에 세션아이디와 클라이언트에서 보낸 로그인 객체를 생성한 세션아이디의 값으로 저장 3) 세션 id를 응답 쿠키로 클라이언트에 전달해 클라이언트에서 보관 , 이후에 클라이언트가 세션id로 서버에 값요청 4) 서버는 세션 저장소에서 클라이언트가 요청한 세션 id로 값을 찾아서 클라이언트에 반환함 * 세션을 사용해 서버에서 중요한 정보 관리 가능 - > 보안 이슈 해결 (쿠키값 변조, 해킹위험일때 서버에서 해당 세션을 강제로 제거 또는 세션 만료시간 짧게 가능)