웹앱개발/Spring boot 30

[oauth2] google login

loadUser 메소드가 종료 시(return) @AuthenticationPrincipal 어노테이션을 사용할 수 있게 만들어 준다! @AuthenticationPrincipal는 세션 정보를 담는 공간이다. 나중에 헷갈린다? UserDetail이랑 OAuthDetail이랑 하나로 만들어 주어야 한다 PrincipalDetail에서 ++++ facebook login https://developers.facebook.com/docs/facebook-login/web/ 웹 - Facebook 로그인 - 문서 - Facebook for Developers 전체 코드 예시 이 코드는 HTML 페이지에 JavaScript SDK를 읽어들여 초기화합니다. {app-id}를 앱 ID로 바꾸고, {api-versi..

구글 로그인 API

구글에서 기본적으로 제공해 주는 게 다르고, 페이스북에서 제공해 주는 기본 정보가 다르다. profile.getId()는 개인 식별 번호이다. sign out API 설정하기 sign_in.jsp의 script 부분 index_header.jsp의 script 부분 OAuth2RestController @RestController @RequestMapping("/oauth2") public class OAuth2RestController { @Autowired private UserService userService; @PostMapping("/signupcheck") public String signUpCheck(@RequestBody SignUpVo signUpVo) { int result = use..

[Spring Boot] 초기 설정/ @RestController/POST 요청 시에 한글 문제

Tomcat 세팅 따로 안 해줘도 된다. 단, jsp 사용하려면 몇가지 세팅을 해줘야 한다. @RestController RestController = Controller + ResponseBody (어떤 통신만 할까? -> Data 통신만 합니다. View랑은 별개.) get - 조회 post - 추가 put - 수정/업데이터 delete - 삭제 REST - 약속에 대한 것들 주소창에 Request 요청 시에 메시지 표현을 url로 하고있다. 이 url을 보자마자 이게 어떤 의미인지를 알 수 있게 만듦. Header 부분에서 이게 조회/추가/수정/삭제인지 알 수 있게끔 도와주는 것. @PathVariable는 post 빼고 다 쓴다. post처럼 요청을 하면서 데이터 전달은 get처럼 한다. (aja..

인증처리

인증처리 1. 톰캣 - 필터!!! /post로 들어올 때 세션이 있으면 진입하게 한다 (필터로 인증처리) 필터로 인증처리 한다는 건 입구에서 한다는 것. web.xml에서 필터를 준다? 필터가 할 수 있는 건 전처리만 할 수 있다. 후처리는 못한다. ex) 중국에서 들어오는 아이피 다 막고 싶다 -> 필터에서 막음. (서블릿 필터 (인플리먼트에서 필터)) 공통적인 처리를 하고 싶으면 필터에서 하면 된다. 2. 스프링 - (리플렉션을 통한 AOP) AOP : 함수 전에 일어나는 일과 후에 일어나는 일 post 관련된 다름 함수에서도 앞뒤제어가 된다. 필터는 앞뒤제어가 안 된다. reflection : 미리 함수를 안 만들어 놓을 수 있다. 껍데기 함수 or 어노테이션 하나 만들어 놓는다.(함수의 틀만). ..

[블로그] comment 등록

DB는 언더바 표기법 사용 자바는 커멜 표기법 사용(자바에서 언더바 방식 쓰면 파싱이 안 된다) 자바스크립트에서는 EL 표현식을 쓰지 않는다. 왜? 나중에 자바스크립트 파일을 따로 분리할 수 없음 reflection validation check를 AOP 처리 데이터 받을 때 - DTO 써야 함 통신이 일어나는 건 전부 다 try-catch로 묶어라 통신 (키보드 통신 내부 통신 하드디스크 통신 ... DB에 데이터 기록하는 것도 통신 메모리에 있는 데이터... ) 통신이 일어나는 건 예외가 일어날 수 있다 그래서 -> 통신이 일어나는 건 전부 다 try-catch로 묶어라

[블로그] comment

들어왔던 정보를 알 수 있는 방법 referrer User Agent 로 어떤 페이지에서 들어왔는 지 알 수 있다. 그래서 헤더를 속이면 자바로 브라우저를 통해서 들어왔다고 할 수 있다 데이터를 변경해야 될 게 너무 많으면 머리가 아파짐 - ajax 의 단점 - 이걸 보완하기 위해 기존 형식으로 회귀하려고 페이스북이 만든 엔진이 리액트다.(나 대신 그림을 그려 주는 엔진) Lombok @Data는 컴파일 하고나서 런타임 시에 작동한다. 1. Lombok의 @Data는 getter, setter/ toString를 만들어 줌 플러그인 (툴이 가져와서 추가한다. 라이브러리랑은 다름)] 설치할 때 일단 툴을 끔 2. @RequiredArgsConstructor // final 써있는 애들을 생성자로 만들어 줌..

session 서버 / 보안/해쉬

session -> 인증 session의 한계, 단점 stateless도 소켓 기반 기본적인 소켓 통신은 서로 갑을 관계가 없다. 서로 push한다. 양끝단의 선을 달고 통신한다. 정보 주고받고 안 끊김 : 인증을 할 필요가 없다 -> session이 필요없다. 왜? 선이 계속 연결돼있으니까. ex) 전화 선이 연결되지 않은 통신을 하는 이유? 인증을 어렵게 하기 위해 HTTP 통신은 인증, 결재, 공인인증서 등등 받아야 함. 너무 많아지니 프로토콜이 점점 무거워짐 이전 페이지 정보를 클라이언트가 Request Header에 referrer 정보를 넣고 요청 서버 응용계층 자바 프로그램으로 네이버를 웹크롤링할 때 . 클라이언트가 서버한테 요청할 때 1 클라이언트가 리퀘스트 헤더에 레퍼럴 정볼르 넣고 자기..

PUT/ 크롤링

updateForm.jsp 타이틀 부분 id = "title" -> document.querySeletor 쉬우라고 섬머노트 컨텐트 부분 아이디 id = "content" 스크립트 부분 섬머노트 아이디도 #content 수정 완료 버튼 타입을 submit으로 함 폼에 섭밋이 실행되면 항상 새로고침이 된다! true를 리턴하든 false를 리턴하든 -> 새로고침 막아야 함! 스크립트에 함수 넣기 function updatePost(){ // 버튼 클릭하면 os가 인식 //이벤트 루프에 쌓여있던 수정 이벤트(버튼이란 엘레멘트 클릭 정보)이 console.log(event) e.preventDefault(); // submit 동작을 막는다. let title = document.querySelector("#..