Spring
-
X-Aiz-Signature-V1란? X-Aiz-Signature-V1 를 이용한 API 통신 보안기능 개발Spring/Spring 개발 예제 2024. 5. 23. 15:59
Contents --> X-Aiz-Signature-V1 HTTP 요청 헤더로, 주로 API 통신에서 사용되는 보안 기능을 담당합니다. 이러한 서명 헤더는 데이터의 무결성과 출처의 신뢰성을 확인하기 위해 디지털 서명을 포함하는 경우가 많습니다. 주요 용도인증 및 인가:요청을 보낸 사람의 신원을 인증합니다.전송 중에 요청이 변경되지 않았음을 확인합니다.데이터 무결성:전송된 데이터가 중간에 변경되지 않고, 원본 그대로 도착했음을 보장합니다.재전송 방지:서명에 타임스탬프나 고유 식별자를 포함하여 동일한 요청이 여러 번 전송되는 재전송 공격을 방지합니다.일반적인 구현 방식서명 생성:요청을 보내는 쪽에서 비밀 키를 사용해 서명을 생성하고, 이를 X-Aiz-Signature-V1 헤더에 포함합니다.주로 HMAC..
-
공통 Session server 와 JWT를 이용한 로그인 구현 with spring security multimodule,spring boot ,redis - 1Spring/Spring Security 2024. 4. 9. 17:07
Contents 시작에 앞서 파일구조 shared-session-server/ │ ├── session-server/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ ├── sessionserver/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ │ │ ├── RedisConfig.java │ │ │ │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ │ │ │ ├── JwtAuthenticationFilter.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AuthController.java..
-
[Spring 핵심 알기 - 3] HandlerAdapter란? HandlerAdapter분석(with. DispatherServlet)Spring/Spring Core 2024. 2. 23. 16:34
Contents --> 시작에 앞서... 왜 핸들러클래스 이름뒤에 adapter가 붙을까? 잘생각해보면 우리가 컨트롤러를 작성할때, 메소드이름 그위에 requestMapping등으로 url를 맵핑해준다. 그렇다면 디스패처는 핸들러맵핑에 의해 찾은 컨트롤러의 메소드를 실행시켜야 하지않는가? 하지만 디스패치서블릿은 해당 컨트롤러에 메소드이름을 모른다.. 그래서 중간에 adapter를 이용해서 메소드를 실행시킨후 modelandview를 데이터를 돌려받는것이다. adapter패턴을 공부하면 이말이 무슨말인지 이해할것이다. DispatcherServlet에서 HandlerAdapter의 역할HandlerAdapter는 Spring MVC의 핵심 구성 요소 중 하나로, DispatcherServlet과 핸들러(..
-
[Spring 핵심 알기 - 1] DispatcherServlet 란? frontController 패턴 (with. 전자정부프레임워크 )Spring/Spring Core 2024. 2. 22. 14:57
Contents --> DispatcherServlet 등장 전의 웹 개발DispatcherServlet이 등장하기 전에는 Java 기반의 웹 애플리케이션 개발에서 주로 서블릿(Servlet)과 JSP(JavaServer Pages)를 사용했습니다. 서블릿과 JSP를 이용한 웹 개발에서는 각 요청마다 서블릿을 작성하고, 비즈니스 로직과 프레젠테이션 로직이 혼재되어 관리가 어려웠습니다. Tomcat Server란 무엇인가?tomcat server는 대표적인 web application server이다. spring boot에서도 기본 서버로 채택하여 셋팅하는 서버이며, 대부분에 si사업이든 플랫폼 사업이든 tomcat server를 많이 사용한다. tomcat server는 사용자가 아래와 같이 u..
-
Spring boot에서 AWS S3에서 받은 파일들을 Zip파일로 압축후 response하기 (in memory)Spring 2023. 5. 23. 09:59
스트림 InputStream,OutputStream 프로세스가 데이터의 도착지라면 입력스트림(inputstream),프로세스가 데이터의 출발지라면 출력 스트림(OutputStream) 이라고 불린다. 기준은 항상 프로그램이다. JAVA의 스트림 JAVA의 스트림은 바이트 기반 스트림,문자 기반 스트림이 존재한다. 바이트 기반 스트림 : 문자,그림,영상등 다양한 형태의 데이터를 주고 받을수 있다. 문자 기반 스트림 : 오직 문자만 주고 받을수 있도록 설계됨. JAVA에서 InputStream은 바이트 기반 입력 스트림 최상위 추상 클래스이고,OutputStream은 바이트 기반 출력 스트림 최상위 클래스이다. 이들의 하위 클래스는 XXXInputStream,XXXOutputStream 이라는 네이밍을 가진..
-
[Spring Security에 대한 이해]인증 공급자 (Authentication Provider)(UserDetailsService,UserDetails,GrantedAuthority,UserDetailsManager) - 2Spring/Spring Security 2023. 2. 17. 09:18
Contents --> Authentication Provider (인증 공급자) 역할 @Componentpublic class CustomAuthenticationProvider[CA]implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { // authentication logic here } @Override public boolean supports(Class authenticationType) { // type of the Authentication i..
-
[Spring Security에 대한 이해] 기본 구성 - 1Spring/Spring Security 2023. 2. 16. 18:54
1.Spring Security 기본 동작 구성 - 기본적으로 Spring Security는 위와같은 구성으로 동작한다. 각각에 대한 요소에 대한 설명은 아래와 같다. 인증 필터 : 인증 요청을 인증 관리자에 위임하고 , 응답을 바탕으로 보안 컨텍스트를 구성한다. 인증 관리자 : 인증 공급자를 이용해 인증을 처리한다. 인증 공급자 : 인증 논리를 구현 , 사용자 관리 책임을 구현하는 사용자 세부 정보 서비스를 인증 논리에 이용한다. 또한 암호 관리를 구현하는 암호 인코더를 인증 논리에 이용한다. 보안 컨텍스트는 인증 프로세스 후 인증 데이터를 유지한다.
-
[Spring] @Component 클래스 생성자에서 @value값이 null일 경우 해결법Spring 2022. 12. 18. 14:38
더보기 *광고 클릭은 제게 큰 힘이됩니다! Class를 컴포넌트 빈으로 생성하고 생성자에서 properties 값을 사용하려고하는데 null경우에 해결법을 적을려고한다. public class ViWebClient { @Value("${dir.absolute.path}") private String dirPath; public ViWebClient(){ ... File file = new FIle(dirPath=='null'); } } 클래스를 생성할때 위와같이 생성자에서 dirPath 값을 가져오려고하면 null이 발생한다 기본적으로 스프링은 Component를 생성할때 생성자를 생성한후 properties값을 주입해주므로 아래와 같은 방법으로 properties value값을 가져올수 있다. publ..