전체 글 검색 결과
59건
[스프링 Security] CSRF 토큰 이야기 - csrf() 켰더니 로그아웃이 안 되네?
이슈? csrf.disable() 하지 않을 시 logout 동작하지 않음 [재현 과정] 시큐리티 설정> http.csrf.disable() 하지 않음> 즉 csrf 지원 활성화 함. @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/*").permitAll() .and() .authorizeRequests().antMatchers("/singers/**").authen..
[스프링 Security] CSRF 토큰 이야기 - 그래서 개발자는 뭘 하면 되죠
CSRF 토큰을 통한 보호 이 글은 Synchronizer Token Pattern에 기반한 CSRF 활용의 빠른 지침이다. Q1. 클라이언트는 어떻게 CSRF 토큰을 얻나요 방법1. 서버가 HTML 렌더링 시 meta 태그에 토큰 집어 넣어 주기 방법2. 서버가 HTML 렌더링 시 form 태그에 hidden _csrf 필드 집어 넣어 주기 방법3. 서버의 API 호출하기 RESTful 서버는 뷰 렌더링을 하지 않으므로, CSRF 토큰을 획득할 수 있는 별도 API를 클라이언트에게 제공합니다. 사례: SAP Netweaver API 문서 요청: GET /mcm/json 헤더: X-CSRF-Token: fetch 앱은 CSRF 토큰을 획득하기 위해 헤더에 X-CSRF-Token: fetch를 포함하여야 ..
[스프링MVC] 서비스 RPC화 이야기 - Deprecated된 HTTP Invoker
HttpInvoker는 스프링 5.3에서 Deprecated된 기술입니다. HttpInvoker는 스프링 웹 애플리케이션에서 서비스를 손쉽게 HTTP 상에 노출하여 다른 앱에서 접근할 수 있도록 하는 기능이다. 스프링 웹 서비스와 스프링 클라이언트 사이에서 활용하기 적합한 기술이고 일종의 RPC로 동작한다. 클라이언트 측 코드는 그저 서비스 객체의 인터페이스를 호출하는 것이지만, 사실은 원격에 자리한 서비스를 호출하게 된다. 코드 챕터 12 베이스 https://github.com/gilbutITbook/006987/tree/master/chapter12/base-remote HTTP 인보커 https://github.com/gilbutITbook/006987/tree/master/chapter12/sp..
[스프링MVC] 파일 업로드 이야기 - multipart/form-data 요청 다루기
1. 멀티파트 요청하기 파일을 업로드하여 DB에 저장하는 기능을 스프링 MVC로 구현하고 있습니다. 이것을 구현하기에 앞서 충분히 이해해야 할 지식입니다. 클라이언트에서 유저의 파일을 업로드 하는 법 클라이언트는 어떤 요청 형식으로 파일을 서버에게 전송합니까? 스프링 MVC는 어떻게 컨트롤러의 인자로 파일 데이터를 바인딩합니까? 파일 업로드를 실현하는 멀티파트 폼 데이터란 1.a. 멀티파트 요청 HTML form 태그에서 enctype 속성에 multipart/form-data 를 배정할 경우 생성하는 요청의 Content-Type 은 multipart/form-data가 된다. 폼에 작성된 데이터들을 요청 바디에 특이한 형식으로 담긴다. 파일 업로드를 위한 폼 양식에서 사용한다. 1.b. 멀티파트 요청..
[Github] 깃허브 매일 커밋 잔디밭 제조기 (Grass Hoppers)
Grass Hoppers ⌒🐸 당신의 잔디를 심어주러 왔어요. 🦗━ ╮ 기능 매일매일 자동 커밋 여기에 두 마리 "grass hoppers (🐸 - 🦗)"가 친구가 되는 걸 도와주면, 당신의 깃허브 프로필에다 잔디를 심어줄 겁니다. 이 프로젝트는 깃허브 액션 워크플로를 하나 갖습니다: GRASSHOPPERS, 이 워크플로는 텍스트 파일: ./grass/grass.txt 에 매일 정해진 시간에 변화를 커밋하죠. 스케쥴 변경 You can schedule a workflow to run at specific UTC times using POSIX cron syntax. Scheduled workflows run on the latest commit on the default or base branch. Th..