
OAuth란?
OAuth1 란 OAuth는 Open Authorization, Open Authentication 뜻하는 것으로 애플리케이션(페이스북,구글,트위터)(Service Provider)의 유저의 비밀번호를 Third party앱에 제공 없이 인증,인가를 할 수 있는 오픈 스탠다드 프로토콜이다. OAuth 인증을 통해 애플리케이션 API를 유저대신에 접근할 수 있는 권한을 얻을 수 있다. OAuth가 사용되기 전에는 외부 사이트와 인증기반의 데이터를 연동할 때 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 이는 보안상 취약한 구조였다. 유저의 비밀번호가 노출될 가망성이 크기 때문이다. 그렇기 때문에 이 문제를 보안하기 위해 OAuth의 인증은 API를 제공하는 서버에서 진..
- Spring Framework/Spring security
- · 2023. 4. 25.
[SpringSecurity] URL 더블슬래시 허용
spring boot 2.5 버전 이상 사용시 Spring Security의 기본적인 정책은 URL에 더블슬래시가 들어가는 것을 허용하지 않는다. 예를 들면, test라는 리소스를 요청할 때 > http://localhost:8080/api/test 라는 URL을 사용한다고 해보자. WEB 소스에서 baseURL 을 잘못설정 뭐 그러한 이유로 http://localhost:8080/api//test 로 요청이 들어오면 서버에서는 아래와 같은 에러가 발생한다. org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.spr..
- Spring Framework/Spring security
- · 2022. 5. 25.
Spring Security 구현 정리
스프링 시큐리티는 "인증"과 "권한"이 있다. Authentication(인증) : '이것' 이라고 주장하는 주체(user)가 '이것'이 맞는지 확인하는 것 코드에서 Authentication : 인증 과정에 사용되는 핵심 객체 ID/PASSWORD 등 여러 방식으로 인증에 필요한 값이 전달되는 하나의 인터페이스 #인증방식의 종류 1) credential 기반 인증 : 사용자명과 비밀번호를 이용한 방식 2) 이중 인증 (twofactor 인증) : 사용자가 입력한 개인 정보를 인증 후 추가인증(OTP) 하는 방법 3) 하드웨어 인증 : 자동차 키 Spring Security는 credential 기반의 인증을 취한다. 로그인 과정 AuthenticationFilter 필터 리스트 WebAsyncManag..
- Spring Framework/Spring security
- · 2022. 5. 24.
[Spring] 비밀번호 암호화 SHA-256 / MD5
import java.security.MessageDigest; public class EncryptionUtils { public static String encryptSHA256(String s) { return encrypt(s, "SHA-256"); } public static String encryptMD5(String s) { return encrypt(s, "MD5"); } public static String encrypt(String s, String messageDigest) { try { MessageDigest md = MessageDigest.getInstance(messageDigest); byte[] passBytes = s.getBytes(); md.reset(); byte[..
- Spring Framework/Spring security
- · 2022. 5. 24.