반응형

분류 전체보기 294

2. SecurityBuilder / SecurityConfigurer

스프링 시큐리티는 초기화때 인증, 인가와 관련된 여러 절차가 필요하다.여러개 객체, 설정, 기타 여러가지 일을 한다. 이런 일들을 종합적으로 처리하는 두개의 클래스가 있다.SecurityBuilder와 SecurityConfigurer 이다이 두개의 클래스를 잘 이해하면 스프링 시큐리티의 초기화 작업에 대해 어느정도 이해 상태에서전체적인 시큐리티 API와 기능들을 알 수 있을것이다. 이 두 클래스가 어떤 역할을 하는지 알아보자SecurityBuilder빌더 클래스로서 웹 보안을 구성하는 빈 객체와 설정 클래스들을 생성하는 역할을 하며 대표적으로 webSecurity와 ★ HttpSecurity(중요함) 가 있다. SecurityConfigurerHttp 요청과 관련된 보안처리를 담당하는 필터들을 생성하고..

Spring Security 2024.05.26

1. 자동 설정에 대한 기본 보안 작동

자동 설정에 의한 기본 보안 작동 스프링 시큐리티를 사용하면 별도의 설정과 개발을 하지 않아도 기본적인 웹 보안 기능이 현재 애플리케이션에 연동되어 작동한다. 서버가 기동되면 스프링 시큐리티의 초기화 작업 및 보안 설정이 자동으로 이뤄진다. 여기서 개발자가 별도의 설정이나 코드를 작성하지 않아도 기본적인 웹 보안 기능이 현재 시스템에 연동되어 작동한다!1. 모든 요청에 대해 인증여부를 검증하고 인증 승인 되어야 자원에 접근 가능하다2. 스프링 시큐리티의 인증 방식은 formLogin과 httpBaisc 로그인 방식 2개를 제공한다3. 인증을 시도할 수 있는 로그인 페이지를 스프링 시큐리티에서 제공해주고 자동으로 생성되어 렌더링된다.4. 인증 승인이 이뤄질수 있도록 하나의 계정을 스프링 시큐리티가 제공한다..

Spring Security 2024.05.26

31. 컨트롤러 정리

정리 지금까지 v1 ~ v5로 점진적으로 MVC 프레임워크를 발전시켜 왔다. 지금까지 한 작업을 정리해보자.v1: 프론트 컨트롤러를 도입기존 구조를 최대한 유지하면서 프론트 컨트롤러를 도입 v2: View 분류단순 반복 되는 뷰 로직 분리myView라는 개념을 도입하여 분리했다 v3: Model 추가서블릿 종속성 제거 (request, responces 다 빼고, 그 대신 Model 객체를 추가해서 Model에 값을 넣는걸로 처리)뷰 이름 중복 제거 (뷰리졸버를 통해서 물리이름에서 논리 이름만 받을수 있도록 구현) v4: 단순하고 실용적인 컨트롤러v3와 거의 비슷구현 입장에서 ModelView를 직접 생성해서 반환하지 않도록 편리한 인터페이스 제공 v5: 유연한 컨트롤러어댑터 도입어댑터를 추가해서 프레임..

30. 유용한 컨트롤러 2 - v5

FrontControllerServletV5 에 ControllerV4 기능도 추가해보자ackage hello.servlet.web.frontcontroller.v5;import hello.servlet.web.frontcontroller.ModelView;import hello.servlet.web.frontcontroller.MyView;import hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3;import hello.servlet.web.frontcontroller.v3.controller.MemberListControllerV3;import hello.servlet.web.frontcontroller.v3.contro..

29. 유용한 컨트롤러 1 - v5

만약 어떤 개발자는 ControllerV3 방식으로 개발하고 싶고, 어떤 개발자는 ControllerV4 방식으로 개발하고 싶다면 어떻게 해야할까? public interface ControllerV3 { ModelView process(Map paramMap);}public interface ControllerV4 { String process(Map paramMap, Map model);}   어댑터 패턴지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다.ControllerV3 , ControllerV4 는 완전히 다른 인터페이스이다. 따라서 호환이 불가능하다. 마치 v3는 110v이 고,v4는 220v 전기 콘센트 같은 것이다. 이럴 때 사용하는 것이 바..

28. 단순하고 실용적인 컨트롤러 - v4

앞서 만든 v3 컨트롤러는 서블릿 종속성을 제거하고 뷰 경로의 중복을 제거하는 등, 잘 설계된 컨트롤러이다.그런데 실 제 컨트톨러 인터페이스를 구현하는 개발자 입장에서 보면,항상 ModelView 객체를 생성하고 반환해야 하는 부분이 조금은 번거롭다.좋은 프레임워크는 아키텍처도 중요하지만, 그와 더불어 실제 개발하는 개발자가 단순하고 편리하게 사용할 수 있어야 한다. 소위 실용성이 있어야 한다.이번에는 v3를 조금 변경해서 실제 구현하는 개발자들이 매우 편리하게 개발할 수 있는 v4 버전을 개발해보자   기본적인 구조는 V3와 같다. 대신에 컨트롤러가 ModelView 를 반환하지 않고, ViewName 만 반환한다 rt java.util.Map;public interface ControllerV4 { ..

27. Model 추가 - v3

FrontController란?- 웹 애플리케이션의 디자인 패턴 중 하나입니다- 클라이언트 요청을 받고 처리하는 중앙 집중형 컨트롤러 입니다- 이 패턴은 중복 코드를 최소화하고 유지보수성을 높이기 위해 사용됩니다 FrontController 역할- 클라이언트 모든 요청을 처음 받아드립니다- 요청에 따라 적절한 핸들러(컨트롤러) 호출하고 요청을 위임합니다- 요청에 대한 인증, 권한 부여 및 로깅과 같은 공통 작업을 처리합니다- 응답을 생성하고 클라이언트에게 반환합니다 프론트 컨트롤러 패턴은 웹 애플리케이션의 아키텍처를 단순화하고 확장성을 높이며다양한 요청을 효율적으로 관리할 수 있도록 도와줍니다대표적인 프론트컨트롤러 구현체로는 Java에서는 Spring Framework의 DispatcherServiet이..

반응형