일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트
- 디자인패턴
- Spring Security
- Redis
- 인터셉터
- 자바
- response
- Filter
- network
- 스프링
- 객체지향프로그래밍
- Spring
- spring boot
- MYSQL
- java
- aspect
- RestControllerAdvice
- http
- SQL
- exception
- 관점지향프로그래밍
- git
- proxy pattern
- OOP
- Interceptor
- 스프링 시큐리티
- request
- 트랜잭션
- mybatis
- aop
- Today
- Total
목록Spring Framework (34)
장쫄깃 기술블로그
들어가며 @Autowired는 Component Scan + @Component로 스프링 빈에 등록된 객체를 찾아서 필요한 의존관계를 설정한다. (우선적으로, 타입(Type)으로 해당 빈(Bean)을 찾는다.) 만약 @Autowired를 통한 자동 의존관계 주입 시 여러개의 빈이 존재한다면 어떻게 될까? 어떤 빈을 의존주입을 해야할 지 판단하지 못하는 경우 UnsatisfiedDependencyException 이 발생한다. UnsatisfiedDependencyException은 예외명에서도 알 수 있듯이 스프링 빈 객체들이 생성되는 과정에서 의존주입을 하게 되는데, 필드에 해당하는 의존관계를 만족시킬 수 없을 때 발생하는 예외이다. 그 중에서 대표적으로 NoUniqueBeanDefinitionExce..
들어가며 지난 게시글에서 URL에 대한 권한을 동적으로 체크하는 방법에 대해서 알아보았다. 이번 게시글에서는 권한에 따른 메뉴를 동적으로 출력하는 방법에 대해서 알아보려고 한다. Spring Security 기본 설정은 이번 게시글에선 생략하려고 한다. 이번 게시글의 모든 내용은 이전 게시글에서 Spring Security Session or JWT 기본 설정 관련 내용을 전부 완료한 이후 진행하는 것으로 가정하려고 한다. Spring Security Session or JWT 기본 설정 관련 내용은 이전 게시글을 참고하면 된다. 링크 : https://jangjjolkit.tistory.com/25 [Spring Security] 2. Spring Security 적용하기 (Session) 들어가며 스..
들어가며 지난 게시글들에서 Session, JWT를 이용하여 로그인 및 권한을 체크하는 방법에 대해서 알아보았다. 그런데 URL 및 권한을 관리자가 동적으로 관리해야 한다면 기존 방식을 사용할 수 없을 것이다. 접근 URL에 대한 권한 정보가 변경된 경우, 어플리케이션을 재기동해야 변경된 정보가 적용되는 문제가 있기 때문이다. 그래서 이번 게시글에선 URL과 권한을 동적으로 관리하고 체크할 수 있는 방법에 대해서 알아보려고 한다. Spring Security 기본 설정은 이번 게시글에선 생략하려고 한다. Spring Security Session or JWT 기본 설정 관련 내용은 이전 게시글을 참고하면 된다. 링크 : https://jangjjolkit.tistory.com/25 [Spring Secu..
들어가며지난 게시글에서 스프링 시큐리티를 이용한 로그인 구현 시 Session을 사용하는 방법을 알아보았다. 스프링 시큐리티는 기본적으로 Session을 사용하는 것이 기본이지만 JWT를 이용하여 로그인을 구현할 수도 있다. 때문에, JWT를 이용한 로그인을 만들어보았다. 해당 글을 작성하며, 지난 게시글에서 설명한 내용중 겹치는 내용의 일부분은 생략했다. 때문에 설명이 필요한 부분이 있다면 이전 게시글을 참고하면 된다.또한, Session을 이용한 스프링 시큐리티 로그인은 해당 글을 참고하면 된다.링크 : https://jangjjolkit.tistory.com/25 [Spring Security] 2. Spring Security 적용하기 (Session)들어가며 스프링 시큐리티를 이용하여 간단하게 ..
들어가며스프링 시큐리티 사용시 기본적으로 Session을 사용한다. 스프링 시큐리티와 Session을 이용하여 로그인 및 권한을 체크하는 기능을 만들어보았다. 스프링 시큐리티에 대한 설명은 해당 글을 참고하면 된다.링크 : https://jangjjolkit.tistory.com/24 [Spring Security] 1. Spring Security(스프링 시큐리티) 란?Spring Security(스프링 시큐리티) 란? 스프링 시큐리티는 스프링 기반의 애플리케이션 보안(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. 즉, 인증(Authenticate, 누구인지) 과 인가(Ajangjjolkit.tistory.com 1. Dependency 추가 org.spr..
Spring Security(스프링 시큐리티) 란? 스프링 시큐리티는 스프링 기반의 애플리케이션 보안(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. 즉, 인증(Authenticate, 누구인지) 과 인가(Authorize, 어떤것을 할 수 있는지)를 담당하는 프레임워크를 말한다. 스프링 시큐리티에서는 주로 서블렛 필터(Filter)와 이들로 구성된 필터체인, 그리고 필터체인들로 구성된 위임모델을 사용한다. 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있다. 보안 용어 접근 주체(Principal) : 보호된 리소스에 접근하는 대상 인증(Authentication) : 보호된 리소스에 접근한 대상에 대해 ..
들어가며 프로젝트 진행 중 Client, Server Filter에서 Request, Response을 자동으로 암/복호화해주는 로직 개발을 맡았다. 자세한 내용은 아래 흐름도를 참고하면 된다. 그런데 개발 진행 중 문제가 발생했다. Request, Response 값을 한번 읽으면 다시 사용할 수 없는 문제였다. Request 값을 암호화 후 전송할 경우 빈 값이 전송되고, Response 값을 복호화할 경우 최종적으로 빈 값이 수신되었다. 해당 문제에 대한 트러블슈팅 과정에서 배운 점과 해결 방법에 대해서 설명해보려고 한다. HttpServletRequest, HttpServletResponse의 InputStream 문서를 보면 해당 현상에 대한 설명이 있다. If the parameter data..
Advice 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의하고 있다. 예를 들어, '메서드를 호출하기 전'(언제)에 '트랜잭션을 시작한다.'(공통기능)기능을 적용한다는 것을 정의하고 있다. Target 클래스에 조인 포인트에 삽입되어져 동작(적용할 기능)할 수 있는 코드를 '어드바이스'라 한다. 관점으로서 분리되고 실행시 모듈에 위빙된 구체적인 처리를 AOP에서는 Advice라고 한다. Advice를 어디에서 위빙하는지는 뒤에 나오는 PointCut이라는 단위로 정의한다. 또한 Advice가 위빙되는 인스턴스를 '대상객체'라고 한다. advice는 Pointcut에서 지정한 Jointpoint에서 실행되어야하는 코드이다. cp.) 스프링의 Advice 타입 - Around Advice: Joinp..
들어가며 이전 글들에서 AOP에 대해 설명한 적이 있다. 그런데 AOP가 파면 팔수록 알아야 할 부분이 많다고 느꼈다. 그래서 별도로 AOP에 대한 세부적인 사항들에 대해 다뤄보려 한다. AOP(Aspect Oriented Programming) 란? AOP 는 관점 지향 프로그래밍이다. AOP는 자바와 같은 객체 지향 프로그래밍(OOP)을 더욱 OOP 답게 사용할 수 있도록 도와주는 역할을 한다. AOP에서 관점은 핵심적인 관점과 부가적인 관점으로 나눌 수 있다. 핵심적인 관점은 핵심 비즈니스 로직을 의미하고, 부가적인 관점은 공통으로 처리되어야 하는 코드를 의미한다. 예를 들어, 위 상황에서 필수적으로 처리되어야 하는 권한, 로깅, 트랜잭션 등의 공통 기능이 정말 커다란 시스템에서 각각 추가된다면 똑..
AOP에 대한 설명은 해당 글을 참고 링크 : https://jangjjolkit.tistory.com/6 [Spring Boot] Filter, Interceptor, AOP 들어가며 자바 웹 개발을 하다보면, 공통적으로 처리해야할 업무들이 많다. 예를들어 로그인, 권한, XSS, pc/mobile 등 사용자 agent 체크, 로그, 페이지 인코딩 변환 등이 있다. 공통업무에 관련된 코 jangjjolkit.tistory.com AOP 상세 설명 참고 링크 : https://jangjjolkit.tistory.com/10 [Spring Boot] AOP(Aspect Oriented Programming) 란? 들어가며 이전 글들에서 AOP에 대해 설명한 적이 있다. 그런데 AOP가 파면 팔수록 알아야 ..