본문 바로가기

분류 전체보기163

[일상] 맥 단축키 모음 (개인) commend + m -> 창 최소화 commend + ctrl + f -> 전체화면 commend + ctrl + space bar -> 이모티콘 commend + shift + 4 -> 선택영역 스크린샷 commend + shift + 4 + space bar -> 선택창 스크린샷 commend + ctrl +shift + 4 -> 선택영역 스크린샷(클립보드) F11 -> 데스크탑 보기(바탕화면) commend + w -> 창 닫기 ctrl + shift + tab -> 뒤로 탭 이동 ctrl + tab -> 앞으로 탭이동 2023. 7. 18.
[Spring Security] 14. JWT를 이용해 로그인전 회원가입 및 db관련 수정사항 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 username과 password를 입력하면 db에 유저 정보가 저장되게 만들어 보자 우선 securityConfig로 이동해서 BcryptPasswordEncode를 의존성주입을 위해서 Bean 등록을 해준다. @Bean BCryptPasswordEncoder bCryptPasswordEncoder(){ return new BCryptPasswordEncoder(); } RestApiController로 이동해서 BCryptPasswordEncode와 UserRepos.. 2023. 7. 18.
[Spring Security] 13. JWT를 이용해 로그인 테스트하기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 JWT을 이용해서 로그인을 진행해보도록 하자. auth 패키지에 PrincipalDetails 클래스를 만든다. UserDetails를 오버라이딩 해준 후 User 모델 클래스를 불러와준후 cmd+n 로 생성자를 만들어주고 ctrl+o로 오버라이딩 메서드들을 추가해준다. cmd+n -> constructor 후 생성자를 만들어준다. GrantedAuthority에 권한 설정을 위해서 user모델에 있는 RoleList에서 권한을 넣어주도록 설정하고 password와 us.. 2023. 7. 17.
[Spring Security] 12. JWT를 이용하기위한 임시토큰만들어 테스트해보기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 임시로 토큰을 만들어서 어떻게 작동을 하는지 그 원리에 대해서 파악해보자 MyFilter3로 이동해서 오버라이딩한 doFilter에 파라메터인 servletRequest 와 servletResponse를 각가 HttpServletRequest와 HttpServletResponse로 받아준다. HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (Http.. 2023. 7. 12.
[Spring Security] 11. JWT를 이용하기위한 filter 등록 테스트 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 필터를 설정하면 어떤 순서로 진행이 되는지 확인해보자 filter 패키지 하위로 MyFilter1 클래스 생성 Filter를 오버라이딩해준다. ctrl+o를 눌러서 doFilter를 오버라이딩 테스트를 진행하기 위해서 콘솔에 filter 1을 찍어보자 public class MyFilter1 implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse ser.. 2023. 7. 11.
[Spring Security] 10. JWT를 이용하기위한 security 설정 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 JWT(Json Web Token) https://jwt.io/introduction 정보를 Json 객체로 안전하게 전송하기 위한 방법 구조는 헤더(Header)/페이로드(Payload)/서명(Signature) 헤더(Header) 헤더에는 해시알고리즘과 토큰의 유형이 표시 되어있다. 페이로드(Payload) 페이로드에는 데이터(정보)들이 들어가 있다. 서명(Signature) 서명부분의 구조는 header.payload, 비밀키 로 되어있다. JWT를 이용해서 로그인.. 2023. 7. 11.
[Spring Security] 9. OAuth 네이버로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글, 페이스북에 이어서 네이버 OAuth 로그인을 진행해보자 네이버 개발자 센터로 이동 https://developers.naver.com/main/ application -> 애플리케이션 등록 선택 애플리케이션 이름을 설정해준 후 회원이름과 이메일에 체크 서비스 Url에 http://localhost:portnumber 입력 callback url에는 http://localhost:portnumber/login/oauth2/code/naver 입력 아이디와 비밀번호는.. 2023. 7. 7.
[Spring Security] 8. OAuth 페이스북로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글 로그인에 이어서 페이스북 로그인을 진행해보자 페이스북 개발자센터로 이동해서 로그인을 해준다. https://developers.facebook.com/ 내앱 -> 앱 만들기를 클릭해준다. 앱 만들기에서 기타를 선택한구 다음 앱 유형은 없음 선택 앱이름 추가하고 이메일은 선택한 후 앱 만들기 선택 facebook 로그인 선택 후 설정 웹 선택 url 주소에 http://localhost:postnumber 입력 후 저장 이후 설정-> 기본설정으로 이동 하면 앱 ID와.. 2023. 7. 6.
[Spring Security] 7. OAuth 구글로그인(4) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 OAuth로 로그인을 했을 때 구글에서 받는 정보가 아닌 특수한 정보가 필요한 경우가 있다. 예를 들어 배송을 해야하는데 주소가 필요할 수도 있고, 포인트같은 건 구글에서 받아올수 있는 정보가 아니기 때문에 해당 유저도 db에 저장을 해줘야 한다. PrincipalOauth2UserService로 이동해서 비밀번호 암호화를 위한 BCryptPasswordEncoder와 유저 정보 저장을 위한 UserRepository를 Autwired 한다. loadUser 함수에 다음.. 2023. 7. 5.
[Spring Security] 6. OAuth 구글로그인(3) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 IndexController에서 세션에 저장되어 있는 유저의 정보를 확인해보자 우선 일반 로그인한 유저는 UserDetails타입으로 확인해볼 수 있고 세션에는 Authentication에 저장되어 있는 유저의 정보를 PrincipalDetails로 형변환을 한 후 확인해볼 수 있다. @GetMapping("/test") public @ResponseBody String test(Authentication authentication, @AuthenticationPrinc.. 2023. 7. 5.