Spring 72

[Spring Security] 인증 저장(Persisting Authentication)

지난 시간에는 Password Storage의 종류에 대해 알아보았다. (궁금하면 여기 클릭해주세요 👍👍👍👍 클릭!) 이번 시간에는 지속 인증(Persisting Authenticaion)에 대해 알아볼 것이다. 참고한 사이트는 다음과 같다. 출처: https://docs.spring.io/spring-security/reference/servlet/authentication/persistence.html https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=moonv11&logNo=220699898987 https://docs.spring.io/spring-security/site/docs/3.2.8.RELEASE/apidocs/org..

[Spring Security] 저장 메커니즘(Storage Mechanism)

지난 시간에 Form, Basic방식을 통한 Authentication(인증)을 알아보았다. (궁금하면 여기 🤣🤣🤣 클릭!) 이번 시간에는 공식 사이트에서 알려주는 저장 메커니즘(Storage Mechanism)에 대해 알아볼 것이다. 참고한 사이트는 다음과 같다. 출처: https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/storage.html 1. 저장 메커니즘(Storage Mechianism) username과 password를 읽는 각각의 지원되는 메커니즘은 어떤 지원되는 메커니즘도 사용 가능하다. Simple Storage with In-Memory Authentication Relational Da..

[Spring Security] Username/password authentication : form / basic

[Spring Security] Username/password authentication : form / basic 지난 시간에는 Authentication 과 Servlet Authentication Architecture에 대해 알아보았다. (Authentication 과 Servlet Authentication Architecture 여기 😁😁 클릭!) 이번 시간에는 인증에서의 username/password 인증에 대해서 알아보겠다. 참고한 사이트는 다음과 같다. 출처: https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/input.html https://docs.spring.io/spring-secu..

[Spring Security] 인증(Authentication) & 서블릿 인증 구조(Servlet Authentication Architevture)

[Spring Security] 인증(Authentication) & 서블릿 인증 구조(Servlet Authentication Architevture) 지난 시간에는 공식 문서에서 Spring Security의 구조(Architecture)에 대해 공부했다. (Spring Security Architecture 공부 내용 여기 😁 클릭!) 이번시간에는 위 내용에 이어서 다음 섹션인 Authentication을 공식 문서에서 알아볼 것이다. 참고한 사이트는 다음과 같다. 출처: https://docs.spring.io/spring-security/reference/servlet/authentication/index.html https://docs.spring.io/spring-security/refere..

[Spring Security] 구조(Architecture)와 이해

[Spring Security] 구조(Architecture)와 이해 지난 시간에 Spring Security의 기본적인 토대에 대해 알아보았다. (궁금하면 여기 클릭!) 이번 시간에는 공식 Reference 사이트에서 지난 시간에 이어 Spring Security의 구조에 대해 알아보고자 한다. 참고한 사이트는 다음과 같다. 출처 : https://docs.spring.io/spring-security/reference/servlet/architecture.html 1. 필터 다시보기 (A Reviews of Filters) 스프링 시큐리티의 서플릿 서포트는 Servlet Filter에 기초하며 일반적으로 처음에 Filter의 역할을 보는게 도움이 된다 (Filter를 잘 모르겠으면... 저번에 한 번..

[Spring Security] Spring Security란? (feat.학습 이유)

필자 키메라는 Spring Security를 이번에 제대로 공부하고자 한다. 내 생각에는 모든 길에는 역시 정공법으로 접근해야한다는 생각이 든다(갑자기...?) 특히, 이 개발이라는것이 결국에는 누군가가 잘 만들어놓은 기능을 가져다가 사용하는 경우가 부지기수다. 과거 (아니 벌써 1년이 넘었네...) 개발원에서 최종 프로젝트 당시 부랴부랴 spring security를 적용했고, 혼자 미니 프로젝트 만들어보겠다고 공부하면서, 강의 배껴가면서 하던게 얼마전 같이 느껴진다. 하지만 단기 속성으로 하게되면 결국에는 남는게 없었다. 내가 스스로 학습하고, 적용하고, 이해하지 않으면 그 많은 강의도, 시간 투자도 소용이 없다는것을 깨달았기에... 최근에 React공부를 하듯이 직접 프로젝트를 생성하고, 적용하고 ..

AOP란? / 스프링 AOP사용

AOP(Aspect Oriented Programming)이란 무엇인지, 그리고 스프링에서는 이것을 어떻게 지원하는지 알아보겠다. 참고한 내용은 다음과 같다. 출처 사이트 : https://whatis.techtarget.com/definition/aspect-oriented-programming-AOP https://www.geeksforgeeks.org/aspect-oriented-programming-and-aop-in-spring-framework/ https://docs.jboss.org/aop/1.0/aspect-framework/userguide/en/html/what.html https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%..

포인트 컷, 어드바이스, 어드바이저(PointCut, Advice, Advisor)

이 내용은 인프런 김영한 선생님의 스프링 핵심 원리 - 고급편을 바탕으로 정리한 것입니다. 포인트컷, 어드바이스, 어드바이저? AOP관련 지식을 조금 알면 이에 대해 들어봤을 것이다. 오늘은 이에 대한 지식과 함께 어떻게 구현하는지 알아볼 것이다. 1. 용어 정리 포인트컷(Pointcut) 어디에 부가 가능을 적용할지, 어디에 부가 기능을 적용하지 않을지 판단하는 필터링 로직. 이름 그대로 어떤 포인트에 기능을 적용할지 안할지를 잘라서 구분하는 것이다. 이름 그대로 각각의 포인트를 cut해서 구분한다는 느낌? 어드바이스(Advice) 프록시가 호출하는 부가 가능. 프록시 로직. 어드바이저(Advisor) 하나의 포인트컷과 하나의 어드바이스를 가지고 있는 것. 이렇게 구분함으로써 얻을수 있는 장점은 역할과..

ProxyFactory란?

이 내용은 인프런 김영한 선생님의 스프링 핵심 원리 - 고급편을 바탕으로 정리한 것입니다. 1. ProxyFactory란? 이 글을 읽기 전 reflection에 대해 알면 좋다. 참고 : https://tech-monster.tistory.com/138 ProxyFactory는 인터페이스로 Proxy를 구성한 경우 혹은 클래스로 Proxy를 구성한 경우 두개의 경우에 일관성 있게 접근할 수 있고, 더욱 편리하게 사용할 수 있는 추상기능을 제공한다. 프록시 팩토리를 사용하면 Advice 를 호출하는 전용 InvocationHandler , MethodInterceptor 를 내부에서 사용한다. *Advice : 프록시에 적용하는 부가 기능 로직 2. ProxyFactory 구현하기 ServiceInter..

오류 처리 / API 예외 처리

1. @ResponseStatus ResponseStatus를 사용하면 설정해 준 내용으로 에러를 반환해준다. 이를 시험하기 위해 BadRequestException이라는 Exception을 만들어본다. ApiExceptionController.java ... @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/response-status-ex1") public String responseStatusEx1() { throw new BadRequestException(); } ... @Data @AllArgsConstructor static class MemberDto { private String memberId; ..