본문 바로가기
728x90
반응형

전체 글576

[Spring] 예외 처리와 오류 페이지 - 서블릿 예외 처리 및 오류 페이지 작동 원리 https://start.spring.io/ 위에 첨부한 프로젝트를 다운받고, build.gradle로 열기 build.gradle 은 아래와 같다.plugins { id 'java' id 'org.springframework.boot' version '2.7.17' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } depend.. 2023. 11. 28.
[Spring] 로그인 처리 시 ArgumentResolver 활용하기 ArgumentResolver는 아래의 포스팅에 설명이 되어있다. https://drcode-devblog.tistory.com/498 [Spring] 요청 매핑 핸들러 어뎁터 구조 그렇다면 HTTP 메시지 컨버터는 스프링 MVC 어디쯤에서 사용되는 것일까? SpringMVC 구조 핵심은 애노테이션 기반의 컨트롤러, 그러니까 @RequestMapping 을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdap drcode-devblog.tistory.com ArgumentResolver 를 이용해서 로그인 회원을 좀 더 편리하게 찾아볼 수 있다. HomeController - 추가 @GetMapping("/") public String homeLoginV3ArgumentResolver(.. 2023. 11. 21.
[Spring] 로그인 처리 - 스프링 인터셉터 스프링 인터셉터 스프링 인터셉터도 서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다. 서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링 MVC가 제공하는 기술이다. 둘다 웹과 관련된 공통 관심 사항을 처리하지만, 적용되는 순서와 범위, 그리고 사용방법이 다르다 스프링 인터셉터 흐름 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 - 스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출 된다. - 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패처 서블릿 이후에 등장하게 된다. 스프링 MVC의 시작점이 디스패처 서블릿이라고 생각해보면 이해가 될 것이다. - 스프링 인터셉터에도.. 2023. 11. 21.
[Spring] 로그인 처리 - 서블릿 필터 서블릿 필터 공통 관심 사항 보통 사이트를 보면 사용자의 권한에 따라, 로그인 한 사용자만 들어갈 수 있는 관리 페이지가 있다. 로그인 화면에서 로그인 하지 않은 사용자에게는 상품 관리 버튼을 보이지 않기 때문에 문제가 없어보이지만, http://localhos:8080/items 를 직접 호출하면 상품관리 화면에 들어갈 수 있다. 상품 관리 컨트롤러에서 로그인 여부를 체크하는 로직을 하나하나 작성하면 되겠지만, 등록, 수정, 삭제, 조회 등등 상품관리의 모든 컨트롤러 로직에 공통으로 로그인 여부를 확인해야 한다. 더 큰 문제는 향후 로그인과 관련된 로직이 변경될 때이다. 작 성한 모든 로직을 다 수정해야 할 수 있다. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cro.. 2023. 11. 20.
[Spring] 로그인 - 서블릿 HTTP 세션을 이용 https://drcode-devblog.tistory.com/560 [Spring] 쿠키와 보안 문제 & 세션 동작 방식 및 세션 직접 구현하기 https://drcode-devblog.tistory.com/559 [Spring] 로그인 구현, 쿠키 적용 지난 포스팅에 이어서 로그인을 구현해보면 아래와 같다. LoginService.java package hello.login.domain.login; import hello.login.domain.member.Member; import drcode-devblog.tistory.com 지난 포스팅에 이어서 이번에는 서블릿 HTTP 세션을 이용해서 로그인처리를 다뤄보겠다. 세션이라는 개념은 대부분의 웹 애플리케이션에 필요한 것이다. 어쩌면 웹이 등장하면서 .. 2023. 11. 15.
[Spring] 쿠키와 보안 문제 & 세션 동작 방식 및 세션 직접 구현하기 https://drcode-devblog.tistory.com/559 [Spring] 로그인 구현, 쿠키 적용 지난 포스팅에 이어서 로그인을 구현해보면 아래와 같다. LoginService.java package hello.login.domain.login; import hello.login.domain.member.Member; import hello.login.domain.member.MemberRepository; import lombok.RequiredArgsConstruct drcode-devblog.tistory.com 위 포스팅처럼 쿠키를 사용하면 로그인Id를 전달해서 로그인을 유지할 수 있었다. 그런데, 여기에는 심각한 보안 문제가 있다. 보안 문제 (1) 쿠키 값은 임의로 변경할 수 있다.. 2023. 11. 15.
728x90
반응형