분류 전체보기

Spring

[Spring Security] 암호화된 비밀번호 비교하기

비밀번호는 암호화되어(▼) DB에 저장되어있음. 근데 같은 문자열을 암호화하더라도 인코딩된 값이 다르기때문에 이 역시 암호화해서 DB의 값을 비교하고.. 이렇게 수동적이게 말고 스프링시큐리티를 이용해야함. - MemberAuthenticationProvider 원하는 것 스프링 시큐리티를 사용해서 사용자의 아이디와 비밀번호를 검증 구현 방법 AuthenticationProvider 인터페이스를 구현하는 클래스 생성 주입 받고 authenticate 메서드 UserDetails userDetails = userService.loadUserByUsername(username); userService를 통해 사용자 정보 가지고와서, if (userDetails != null && passwordEncoder...

Spring

[Thymeleaf] 타임리프 이용한 파라미터 전송

기존 ▼ href="/policy/terms?termsType=buyer" 타임리프 사용 ▼ 서비스이용약관 링크 타임리프에서도 '?'로 파라미터 전송이 가능하지만 타임리프 문법은 ()로 전송하는 것이라고 한다. 컨트롤러에서 수신할 때에는 @RequestParam 어노테이션 사용 (생략가능)

Spring

SpringBoot 테스트 시 @WebMvcTest와 @SpringBootTest 차이

Junit 테스트 시 주로 @WebMvcTest와 @SpringBootTest 를 사용 1. Mock 실제 객체를 만들어서 테스트하기 어려운 경우에 가짜 객체를 만들어서 테스트함 2. MockMvc MVC에 관련된 Mock 가짜 객체를 의미 - 웹 애플리케이션을 애플리케이션 서버에 배포하지 않고, 테스트용 MVC 환경을 만들어서 요청 및 전송, 응답 기능을 제공해주는 객체 - 대부분 애플리케이션 기능을 테스트하기 위해서 MockMvc 객체를 만들어서 테스트 - @Autowired로 주입받아서 사용 3. @WebMvcTest MockMvc 객체를 빈으로 등록해서 @Autowired로 MockMvc 주입 가능 Web Layer 관련 빈들만 등록하기 때문에, @Component로 등록한 빈은 @MockBean..

Spring

[Spring] OAuth2 + 실습

OAuth2란? JWT를 이용해 이용해 제 3의 플랫폼 업체의 사용자 정보를 통해 사용자를 인증하는 표준 위임 인증기술 대다수의 서비스 업체에서 표준으로 OAuth2 방식으로 인증 서비스 제공 리소스 오너 : 인증을 요청하는 사용자 리소스 서버 : 사용자의 정보를 신뢰할 수 있는 제 3의 서비스 인증 서버 : 액세스 토큰을 발행하는 서버 애플리케이션 : 개발하는 서비스 [실습] OAuth2 설정을 통해 카카오 회원 정보 받기 https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com OAuth설정(Kak..

Spring

토큰 기반 인증방식, JWT, Access/Refresh Token + 실습

1. 토큰 기반 인증 사용자 인증 방식은 세션기반 인증방식과 토큰기반 인증방식이 존재한다. 토큰기반 인증방식 : 서버에서 토큰을 생성하여 사용자에게 토큰을 제공해 사용자를 인증하는 방식 무상태성, 확장성, 무결성의 특징을 가짐. 2. JWT Json Web Token 사용자를 인증하고 식별하기 위한 토큰기반 인증기술 사용자의 인증 정보와 Server에서 발급되었음을 증명하는 서명이 포함된 암호문을 Client에서 저장 관리 크게 헤더(header), 내용(payload), 서명(signature)으로 구성 헤더 : 토큰 타입과 해싱 알고리즘 정보 내용 : 클레임(Claim)이라고 하는 토큰 정보 서명 : 무결성을 위한 비밀키 3. Access/Refresh Token JWT는 보안성을 향상하기 위해 Ac..

Spring

Spring REST API + 실습

1. API란? API(Application Programming Interface)란 프로그램과 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. -위키백과- API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용 프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달하는 즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체 일반적으로 API는 애플리케이션에서 요청을 보내고 응답을 받기 위해 정의된 명세(URL)를 의미 2. REST API란? REST(Representational State Transfer)는 네트워크에서 클라이언트와 서버 사이의 통신을 구현하는 방법에 대한 ..

Spring

Spring Security 동작방식 + 실습

1. 인증과 인가 인증(Authentication)은 애플리케이션에서 특정 Resource(디렉터리, 파일 등)에 대해 특정 작업을 수행할 수 있는 주체인지 확인하는 과정 인가(Authorization)는 권한부여 또는 허가와 같은 의미로 인증 이후의 과정 일반적으로 인증을 통해 사용자를 식별하고(로그인) 인가(Role)를 통해 시스템 자원에 대한 접근을 통제 2. Spring Security란 인증과 인가 관련 처리와 보안 관련 처리를 제공하는 라이브러리 Servlet Filter 기반으로 동작하고, 다양한 기능들을 Filter(컨트롤러 앞단에서 사용되는 컴포넌트)로 제공 ✔ UsernamePasswordAuthenticationFilter(인증) ✔ FilterSecurityInterceptor(인가..

Spring

[Spring Boot] 테스트와 로깅 + 실습

TDD(Test Driven Development) : 테스트 주도 개발을 의미 Agile 개발 방법론에 기반한 짧은 개발 주기의 반복에 의존하는 개발 프로세스 단위 테스트를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현하는 개발 방식 JUnit : TDD의 가장 대표적인 Java 단위 테스트 프레임워크 스프링부트는 logback 라이브러리를 내장하고 있으며 @slf4j 사용하여 logger 사용 [실습1] 로그 출력하기 @Slf4j 어노테이션 로그 출력하기 로그 단계별로 출력 가능 [실습2] Junit 테스트 SpringBoot 테스트 시 @WebMvcTest와 @SpringBootTest 차이 링크 테스트 폴더 내에 넣어주고 1) @WebMvcTest 테스트할 메서드 위에 @Test 어..

oink24
'분류 전체보기' 카테고리의 글 목록