일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 컴퓨터공학
- 보안
- 소프트웨어공학
- 버전관리
- 알고리즘
- I'm Sorry
- 네트워크
- 사이버보안
- 데이터분석
- 클라우드컴퓨팅
- 소프트웨어
- 데이터구조
- 웹개발
- 데이터과학
- 딥러닝
- 컴퓨터과학
- 인공지능
- 자바스크립트
- 컴퓨터비전
- 자료구조
- 빅데이터
- 데이터베이스
- 디자인패턴
- 파이썬
- 프로그래밍언어
- 프로그래밍
- 머신러닝
- Yes
- 네트워크보안
- springboot
- Today
- Total
목록backenddev (4)
스택큐힙리스트
“인증(Authentication)은 ‘누구냐’를 묻고, 인가(Authorization)는 ‘무엇을 할 수 있느냐’를 답한다.”이 문장 하나로 두 개념의 핵심을 잡으면, Spring Security 설계 · 디버깅이 훨씬 쉬워집니다. 오늘은 이 두 축을 깔끔히 구분해 보고, 실제 애플리케이션에서 어떻게 흘러가는지도 살펴봅니다.1. 개념 먼저 정리하기인증: 사용자가 실제로 주장한 신원이 맞는지 증명하는 과정입니다. 로그인, OAuth2 소셜 콜백, API Key 검증 등이 여기 포함됩니다.인가: 이미 인증된 사용자에게 요청 자원에 대한 접근 권한을 부여·거부하는 과정입니다. “관리자만 /admin 접속 가능”, “게시글 작성자는 수정·삭제 가능” 같은 룰이 여기에 해당합니다.2. 실생활 비유로 감 잡기인증..
Spring Security의 DebugFilter는 요청이 들어올 때마다 필터 체인 진행 상황·인증·인가 의사결정 과정을 콘솔에 그대로 보여줍니다. 단 몇 줄 설정이면 “왜 403 Forbidden이 떴을까?”를 로그만 보고 바로 파악할 수 있어요.1. DebugFilter가 하는 일org.springframework.security.web.debug.DebugFilter가 Filter Chain 가장 앞에 삽입되어 요청‧응답 정보를 상세히 남깁니다.세션 생성·Authentication 객체·AccessDecisionManager 처리 결과까지 모두 로깅해 인증 ↔ 인가 경계를 실시간으로 확인할 수 있습니다.주의 : DebugFilter는 민감 정보(헤더·세션 ID)를 그대로 노출하므로 로컬/스테이징 ..
1. 목표 체크Swagger UI 상단 “Authorize” 버튼에서 JWT를 한 번만 입력 → 모든 secured 엔드포인트 호출토큰 만료·재발급 시에도 Postman 없이 Swagger 안에서 바로 검증팀원이 새로 합류해도 “로그인 → 버튼 클릭 → 테스트” 3-스텝이면 끝!2. 의존성 추가implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'implementation 'io.jsonwebtoken:jjwt-api:0.12.5' // JWT 발급·검증runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12..
1. 왜 Swagger UI인가?변경‧추가 즉시 문서 갱신: Controller·DTO에 애너테이션만 붙이면 최신 OpenAPI 스펙이 자동 생성됩니다.개발·QA·프런트 모두 같은 화면: UI에서 엔드포인트·파라미터·예시 응답을 확인하고 바로 호출까지 가능해 커뮤니케이션 비용이 급감합니다.Postman‧SDK로 원클릭 공유: 스펙을 그대로 가져가 회귀 테스트나 클라이언트 코드 생성에 재사용할 수 있습니다.2. 스프링 부트에 springdoc-openapi 적용// build.gradleimplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'// SwaggerConfig.java@OpenAPIDefinition( info = @..