BackEnd

많~~은 어노테이션이 있지만 내 프젝에서 쓴 어노테이션들만 정리해보려고 한다. Annotation (어노테이션) 이란? 사전적 의미로는 주석이라는 뜻이다. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공한다. 데이터들에 대한 유효 조건을 쉽게 파악할 수 있게 하고, 코드의 양이 줄어든다. Annotation 종류 @Controller Spring의 Controller를 의미한다. Spring MVC에서 Controller 클래스에 쓰인다. [ @Controller와 @RestController의 차이 ] @Controller - API와 view를 동시에 사용하는 경우에 사용한다. - view return이 주 목적이다. @RestController - view가 필요없는 API만 지원하는 서..


2021.10.10 - [Project [study]/Social Login] - [카카오로그인] REST API 카카오 로그인 구현 2 [카카오로그인] REST API 카카오 로그인 구현 2(코드,토큰 받기) 2021.10.10 - [Project [study]/Social Login] - [카카오로그인] REST API 카카오 로그인 구현 1 [카카오로그인] REST API 카카오 로그인 구현 1 카카오 로그인 기능 적용해보기. 카카오 개발 가이드를 토대로 기.. nxxrxx.tistory.com 로그인 후 유저 이름과 프로필사진을 받아와 보려고 한다. Properties(밑에서)부터 vo패키지에 파일을 만들어준다. Properties.java package edu.bit.ex.vo; import l..


2021.10.10 - [Project [study]/Social Login] - [카카오로그인] REST API 카카오 로그인 구현 1 [카카오로그인] REST API 카카오 로그인 구현 1 카카오 로그인 기능 적용해보기. 카카오 개발 가이드를 토대로 기능을 작성해본다. Kakao Developers https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite Kakao Developers 카카오 API를 활용.. nxxrxx.tistory.com 이제 세팅하고 구현해보자 kakao developers에서 이부분 참고하기 https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-..


카카오 로그인 기능 적용해보기. 카카오 개발 가이드를 토대로 기능을 작성해본다. Kakao Developers https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 카카오 로그인이 진행되는 과정 사용자가 앱에서 카카오 로그인 버튼을 클릭한다. 사용자가 [카카오톡으로 로그인]을 선택하면 카카오톡 실행 또는 실행 중인 카카오톡으로 연결되고, [다른 카카오계정으로 로그인]을 선택하면 직접 계정 정보를 입력하는 화면이 출력된다. 카카오톡이..


CSRF (Cross-site request forgery)란? 스프링 시큐리티에서 POST 방식을 이용하는 경우 기본적으로 CSRF 토큰이라는 것을 이용하게 된다. 별도의 설정이 없다면, 스프링 시큐리티가 적용된 사이트의 모든 POST 방식에는 CSRF 토큰이 사용되는데 '사이트간 위조 방지'를 목적으로 특정한 값의 토큰을 사용하는 방식이다. CSRF 공격에 대한 이해를 해야한다. 가장 대표적인 것이 과거 옥션 털린 것. 어떤 출처(CSRF - 토큰값으로 출처 표현)에서 호출이 진행되었는지 따지지 않기 때문에 생기는 허점 서버에서 받아들이는 정보가 특별히 사전 조건을 검증하지 않는다는 단점 결론 CSRF 공격은 '사이트간 요청 위조' 라고 번역될 수 있다. 예를 들어 A라는 사이트가 존재한다고 가정하고..


*그냥 확인 하기 쉽게 home.jsp에 링크 걸어주기 home.jsp 메인페이지 로그인 로그인 정보 확인 방법5 가지(상속관계만 잘 이해하면 됨) [회원가입] [유저 홈] [관리자 홈] 게시판] --%> HomeController.java 폴리몰피즘 상속관계 이해하기 @GetMapping("/loginInfo") public String loginInfo(Principal principal) { log.info("loginInfo().."); //1.Controller를 통하여 Principal 객체로 가져오는 방법 String userId = principal.getName(); System.out.println("유저 아이디 : " + principal.getName()); //2.SpringCon..


지금까지는 세팅을 통해서 했지만 실무에서는 이렇게 하지 않는다. - username, password, enabled 와 같이 해당 DB를 만들라는 법이 없기 때문. (datatable 설계할 때 user에는 address, email, gender, image 등..여러가지 기타 칼럼이 들어가기 때문에) 로그인 정보를 세션에 올린다. 우리가 로그인을 시키는 이유는? - 로그인은 부차적인 거고 user 정보를 메모리에 올리는데 그 대표적 방법이 세션이다. - 로그인페이지 말고도 , 쇼핑몰이라면 --님 / 장바구니 / 개인정보 페이지 등. 로그인인 기본적인 기능이고, 그 이후 정보를 써먹는게 기본적인 목적이다. jstl에서는 principal을 쓴다. - principal.emp, principal.emp..


* 전에 했던 DB보면 password를 쌩으로 넣음. password 암호화 시키기 전에 만들었던 customNoOpPasswordEncoder 여기에 암호화 모듈 넣기 암호화를 시키기 위해서는 암호화 알고리즘이 필요하다. 암호화를 시키는 것을 encoding / 원래대로 되돌리는 것을 decoding 이라고 한다. 모든 암호화는 encoding, decoding 단계를 거치게 되어있다. BCryptPasswordEncoder란? 스프링 시큐리티 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는데 사용할 수 있는 메서드를 가진 클래스 BCryptPasswordEncoder는 BCrypt 해싱 함수를 사용해서 비밀번호를 인코딩 해주는 메서드와 사용자에 의해 제출된 비밀번호와 저장소에 저장되어..


* Oracle 사용 USERS & AUTORITIES TABLE Oracle, SQL create table users( username varchar2(50) not null primary key, password varchar2(100) not null, enabled char(1) DEFAULT '1' ); create table authorities ( username varchar2(50) not null, authority varchar2(50) not null, constraint fk_authorities_users foreign key(username) references users(username) ); create unique index ix_auth_username on autho..