본문 바로가기

프로젝트/SpringSecurity18

[Spring Security] 17. JWT 받아서 유효성 검사하기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 지난번에 클라이언트측에서 JWT을 응답받아서 해당정보로 유저의 정보를 db에서 찾아내서 세션에 저장까지 했었다. 이제 해당유저가 가진 권한에 따라서 접근할 수 있는 주소가 다른데 어떻게 진행이 되는지 알아보자 JwtAutorizationFilter 클래스를 생성한다. BasicAuthenticationFilter를 오버라이딩 commend + n을 눌러서 생성자를 생성해준다. 테스트를 진행하기 위해 해당 필터로 값이 넘어오는지 콘솔에 찍어보고 securityConfig로.. 2023. 7. 20.
[Spring Security] 16. JWT응답(Response)해주기 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 저번에 로그인을 구현하는 기능을 작성 한 후 토큰을 만들어서 클라이언트 측으로 응답해주는 기능을 작성해보자 JwtAuthenticationFilter에서 successfulAuthentication 을 오버라이딩 해준다 (ctrl+o) /login으로 접속해보면 해당 메서드로 이동하는 것을 확인 할 수 있다. @Override protected void successfulAuthentication(HttpServletRequest request, HttpServletRe.. 2023. 7. 19.
[Spring Security] 15. JWT를 이용하기 위해 강제로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 저번글에 이어서 권한을 위해서 정보를 세션에 저장하기 위해서 강제로 로그인하는 기능을 작성해보자. JwtAuthenticationFilter로 이동해서 body값에서 넘어오는 값을 한 번 받아보자. @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { System.ou.. 2023. 7. 19.
[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.