| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- It
- Authentication
- Node.js
- spring
- 스프링부트
- 정보처리기사 실기
- 웹개발자
- 백엔드
- 백엔드개발자
- 큐넷
- TypeScript
- 프론트엔드
- spring boot security
- React
- 정보처리기사
- JS
- 타입스크립트
- VUE
- 수제비
- frontend
- TS
- 리액트
- Front-End
- Redux
- useState
- security
- JWT
- 자바스크립트
- spring boot
- JavaScript
- Today
- Total
목록Back-end/Spring Boot Security (11)
솔적솔적
저번시간에는 Authentication 안에 들어갈 수 있는 두개의 타입인 UserDetails와 OAuth2User을 하나로 묶어서(PrincipalDetails) 처리하는 번거로움을 개선하려했었으며 이번에는 PrincipalDetails 타입으로 묶고 구글 로그인과 자동 회원가입진행을 완료하는 것을 목표로 진행할 예정이다. 회원가입을 하면 어떤 오브젝트가 필요하냐면 User오브젝트가 필요한데, 둘 다 user오브젝트를 찾을 수 없다. 따라서 PrincipalDetails을 만들고 UserDetails를 implements 해서 User오프젝트를 품는다. 그러면 어차피 UserDetails Authentication에 넣을 수 있으니 UserDetails를 principalDetails로 바꿔서 Use..
getClientRegistration 에는 서버에 기본 정보들이 들어있다. 어떤 OAuth로 로그인 했는지 확인한다. 구글로그인 버튼 클릭을 하면 구글로그인창 나오고 로그인완료 하면 code를 리턴(OAuth-Client라이브러리) => Access Token요청 이 userRequest정보로 뭘해야하냐면 회원프로필 정보를 받아야함(loadUser 함수호출) -> 구글 회원프로필 받아준다. PrincipalOauth2UserService @Service public class PrincipalOauth2UserService extends DefaultOAuth2UserService { //구글로 부터 받은 userRequest데이터에 대한 후처리 되는 함수 @Override public OAuth2Us..
우선 google api console로 들어가서 프로젝트 만들기 https://console.developers.google.com/apis Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com URL은 http://localhost:8080/login/oauth2/code/google 구글 로그인이 완료가 되면 서버쪽에서 코드를 돌려준다. 우리는 코드를받아 요청을할 때 필요한 것 다른 메모장에 옮겨 적어놓기! 그리고 잠깐 oauth2-client 라이브러리가 등록되어져있는지 확인해보자. pom.xml안에 등록되어있는지 확인. application.yml security: ..
권한 처리를 하기 전 admin, manager 회원가입을 한다. DB에 확인하고 싶다면 SELECT * FROM USER; 권한 세팅 update user set role = 'ROLE_MANAGER' where id=2; update user set role = 'ROLE_ADMIN' where id=3; user테이블에서 확인 SecurityConfig안에 추가로 입력할 코드 @EnableGlobalMethodSecurity(securedEnabled=true) secured 어노테이션 활성화인데, 이 코드를 추가 후 IndexController.java 파일에 @Secured("ROLE_ADMIN") @GetMapping("info") public @ResponseBody String info()..