Spring Security Basic Practice Spring Security는 인증(Authentication) 및 인가(Authorization)를 담당하는 스프링 프레임워크이다. 먼저 ChatGPT에게 Spring Security에 대해 물어봤는데 정확하고 상세하게 대답해줘서 놀랐다. 누군가 Spring Security에 대해 물어본다면 ChatGPT처럼 말하면 아주 좋을 것 같다. (대단;;) 이번 블로깅에서는 Spring Security의 기초 구조에 대해 정리해보려고 한다. Basic Web Security Servlet 기반으로 구동되는 웹서비스는 인증, 인가, 변환, 압축, 암호화 등 비즈니스 로직이 수행되기 전에 공통으로 사용되는 로직을 Servlet Filter로 구현한다. 위 그..
Spring 검색 결과
Spring Authorization Server Practice Spring Authorization Server 프레임워크는 OAuth 2.0 중 Authorization Server 부분을 쉽게 구현할 수 있게 해준다. 우선 OAuth 2.0에 대해 간략히 살펴보자. OAuth 2.0 rfc6749 문서에 따르면 'OAuth 2.0 인가(인증) 프레임워크'라는 말로 OAuth 2.0을 풀이한다. OAuth 2.0은 서드파티 앱이 특정 서비스의 제한이 걸린 자원에 접근하기 위해 리소스 오너(사용자)의 허락을 받아 자원에 접근을 하게되는 일련의 플로우를 제공한다. 구글, 페이스북 등 유수의 IT 기업들은 자신의 우수한 회원 체계, 여러 코어 서비스를 바탕으로 OAuth 2.0 서비스를 제공하고 있다. ..
실무에서 OAuth2 로그인 구현을 위해 spring-security 그룹의 spring-security-oauth2-client 프레임워크를 이용하고 있습니다. spring-security-oauth2-client 프레임워크는 추후 자세히 다뤄보겠으며 이번엔 실무를 하면서 겪은 Authorization Endpoint 커스터마이징 내용을 중점적으로 다루려 합니다. 본 포스트에 언급된 프레임워크의 dependency는 아래와 같습니다. org.springframework.boot:spring-boot-starter-security:2.2.1.RELEASE org.springframework.security:spring-security-oauth2-client:5.2.1.RELEASE 작업 개요 사용자가 ..
junit test 돌릴 때 hibernate query가 어떻게 동작하는지 보고 싶을 때 query가 안나오는 경우 1. query를 노출시키지 않은 경우 application.yml or .properties 파일에 아래처럼 설정을 추가해서 해결합니다. logging: level: org.hibernate.type: trace 2. 그래도 노출이 되지 않는다면 테스트케이스에서 트랜잭션이 롤백되면서 노출되지 않는 경우가 있는데요. 해당 테스트메서드나 클래스 상단에 아래처럼 어노테이션을 추가해주시면 트랜잭션이 커밋되면서 노출되게 됩니다. @Rollback(false) 하지만 트랜잭션 롤백이 되지 않아 다른 테스트에 영향을 줄 수 있게 되니 쿼리 확인할 때만 쓰시고 테스트 코드에 남기지는 마시기 바랍니다.
Spring Security를 이용하면 기본으로 추가되는 응답 헤더들이 있습니다. 프로젝트에 Spring Security의 적용을 고려하시는 분들은 default 옵션을 알아두시면 도움이 될 것 같습니다. * X-Content-Type-Options : MIME type sniffing 방지를 위한 헤더, * X-XSS-Protection : 크로스사이트 스크립팅 관련 헤더 * Cache-Control : 캐시 컨트롤 헤더 * HTTP Strict Transport Security : 웹브라우저가 이 헤더를 받게 되면 특정 '도메인'에 무조건 https로 접속하게 됩니다. http로 접근해도 https로 강제 redirect 됩니다. * X-Frame-Options : , 태그 등을 이용하는 코드에 대해..