본문 바로가기
728x90
반응형

스프링/스프링 웹 개발 활용66

[Spring] 로그인 처리 - 스프링 인터셉터 스프링 인터셉터 스프링 인터셉터도 서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다. 서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링 MVC가 제공하는 기술이다. 둘다 웹과 관련된 공통 관심 사항을 처리하지만, 적용되는 순서와 범위, 그리고 사용방법이 다르다 스프링 인터셉터 흐름 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 - 스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출 된다. - 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패처 서블릿 이후에 등장하게 된다. 스프링 MVC의 시작점이 디스패처 서블릿이라고 생각해보면 이해가 될 것이다. - 스프링 인터셉터에도.. 2023. 11. 21.
[Spring] 로그인 처리 - 서블릿 필터 서블릿 필터 공통 관심 사항 보통 사이트를 보면 사용자의 권한에 따라, 로그인 한 사용자만 들어갈 수 있는 관리 페이지가 있다. 로그인 화면에서 로그인 하지 않은 사용자에게는 상품 관리 버튼을 보이지 않기 때문에 문제가 없어보이지만, http://localhos:8080/items 를 직접 호출하면 상품관리 화면에 들어갈 수 있다. 상품 관리 컨트롤러에서 로그인 여부를 체크하는 로직을 하나하나 작성하면 되겠지만, 등록, 수정, 삭제, 조회 등등 상품관리의 모든 컨트롤러 로직에 공통으로 로그인 여부를 확인해야 한다. 더 큰 문제는 향후 로그인과 관련된 로직이 변경될 때이다. 작 성한 모든 로직을 다 수정해야 할 수 있다. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cro.. 2023. 11. 20.
[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.
[Spring] 로그인 구현, 쿠키 적용 지난 포스팅에 이어서 로그인을 구현해보면 아래와 같다. LoginService.java package hello.login.domain.login; import hello.login.domain.member.Member; import hello.login.domain.member.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.Optional; @Service @RequiredArgsConstructor public class LoginService { private final MemberRepository memberRepository;.. 2023. 11. 13.
[Spring] 회원가입 구현 회원가입을 하려면 Member class가 있어야 한다. Member.java package hello.login.domain.member; import lombok.Data; import javax.validation.constraints.NotEmpty; @Data public class Member { private Long id; @NotEmpty private String loginId; // 로그인 ID @NotEmpty private String name; // 사용자 이름 @NotEmpty private String password; } MemberRepository.java package hello.login.domain.member; import lombok.extern.slf4j.Sl.. 2023. 11. 10.
[Spring] 로그인 처리 - 쿠키, 세션 프로젝트 설정, 홈 화면 상품 시스템에 로그인을 처리하는 시스템을 만들어보자. 먼저 로그인 하기 전, 홈 화면에서는 - 회원가입 - 로그인 버튼이 있어야 할 것이다. 로그인 후 홈 화면에서는 - 본인 이름(OO님 환영합니다.) - 상품 관리 - 로그 아웃 이 있고, 보안 요구사항은 - 로그인 사용자만 상품에 접근하고, 관리할 수 있고 - 로그인 하지 않은 사용자가 상품 관리에 접근하면 로그인 화면으로 이동한다 회원 가입, 상품 관리 프로그램이 있다. 홈 화면 홈화면 로그인 후 회원 가입 로그인 상품 관리 프로젝트 생성은 아래의 zip 파일을 해제하여 프로젝트로 열면 된다. 프로젝트로 열고 실행하면 다음과 같다. 실행 http://localhost:8080 실행하면 HomeController 에서 /items 로 redirect .. 2023. 11. 10.
728x90
반응형