일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Filter
- OOP
- network
- 디자인패턴
- 스프링 시큐리티
- 스프링부트
- MYSQL
- aop
- request
- 인터셉터
- Spring Security
- http
- Interceptor
- 트랜잭션
- SQL
- Spring
- exception
- mybatis
- Redis
- aspect
- 스프링
- 자바
- git
- response
- proxy pattern
- 객체지향프로그래밍
- RestControllerAdvice
- spring boot
- java
- 관점지향프로그래밍
- Today
- Total
목록스프링 (17)
장쫄깃 기술블로그
들어가며Spring Security 6.1부터 기존에 사용하던 and()와 non-Lambda DSL Method가 Deprecated 되고, 필수적으로 Lambda DSL을 사용하도록 변경되었다. 변경된 내용으로 스프링 시큐리티 JWT 로그인을 구현해보려 한다. 다만, 본 게시글은 스프링 시큐리티 위주의 내용만 작성하려고 한다. 로그인, 회원가입 등의 별도 비즈니스 로직 코드는 게시글 하단의 깃허브를 참고하길 바란다. 기술스택- Spring Boot 3.3.1- Spring Security 6.3.1- JPA- JWT(Access Token, Refresh Token) 구현- Spring Security 6.1 이후 lambda 문법을 이용한 코드 적용 JWT에 대한 설명이나 이전에 작성한 내용에 대해..
들어가며Spring Security 6.1부터 기존에 사용하던 and()와 non-Lambda DSL Method가 Deprecated 되고, 필수적으로 Lambda DSL을 사용하도록 변경되었다. 변경된 내용으로 스프링 시큐리티 세션 로그인을 구현해보려 한다. 다만, 본 게시글은 스프링 시큐리티 위주의 내용만 작성하려고 한다. 로그인, 회원가입 등의 별도 비즈니스 로직 코드는 게시글 하단의 깃허브를 참고하길 바란다. 기술스택- Spring Boot 3.3.1- Spring Security 6.3.1- JPA- Session, Form Login 구현- Spring Security 6.1 이후 lambda 문법을 이용한 코드 적용 스프링 시큐리티에 대한 설명은 해당 글을 참고하면 된다.링크 : https..
들어가며 기존에 SpringBoot에선 tomcat-jdbc를 기본 DataSource로 제공했다. 하지만 2.0부터 HikariCP가 기본으로 변경되었다.(참고) HikariCP는 이전 버전에서도 많은 사람들이 설정을 변경해서 사용했을 정도로 인기가 많았다. 이번 게시글에선 HikariCP의 DataSource 정보를 설정하는 방법에 대해서 알아보려고 한다. 더 나아가 다음 게시글에선 HikariCP를 이용하여 Transaction Read-Only 적용 시 Master / Slave DB 라우팅하는 방법까지 가보려고 한다. 1. Dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' im..
들어가며 스프링을 이용한 Web IDE를 만들어보았다. 웹 화면에서 코드를 치고 실행하면 실행시간, 결과 등을 확인할 수 있다. 필자는 해당 프로젝트를 Docker Container로 실행시켜 문제 발생 시 프로젝트를 종료시켜버리고 Docker에서 자동으로 재시작해주는 방법을 사용했다. 해당 글에서는 Docker 환경에 프로젝트를 배포하는 방법은 생략하고, 코드를 실행하고 실행시간과 결과를 반환해주는 방법에 대해서만 설명하려고 한다. 1. Java Reflection 이란? 해당 프로젝트에서는 Java Reflection을 사용하였다. 때문에 Reflection에 대해서 알아야 한다. 자바의 리플렉션(Reflection)은 클래스, 인터페이스, 메소드들을 찾을 수 있고, 객체를 생성하거나 변수를 변경할 ..
들어가며 지난 게시글에서 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..