본문 바로가기

프로젝트/SpringSecurity18

[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.
[Spring Security] 5. OAuth 구글로그인(2) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글로부터 받은 회원의 정보를 받아서 사용하기 위해서 oauth 패키지에 PrincipalOauth2UserService를 생성해준다. 해당 클래스에 @Service 어노테이션을 추가해주고, DefaultOAuth2UserService를 상속받고 loadUser 함수를 생성해준다. @Service public class PrincipalOauth2UserService extends DefaultOAuth2UserService { @Override public OAuth2.. 2023. 7. 4.
[Spring Security] 4. OAuth 구글로그인(1) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글아이디로 로그인을 준비 하기 위해서 아래링크로 이동해서 새로운 프로젝트를 만들어준다. https://console.cloud.google.com 프로젝트 이름을 만들어주고 API 및 서비스 -> OAuth 동의화면 으로 이동한다. 타입은 외부로 선택한 후 만들기 클릭 필수로 채워야하는 사항들을 넣어주고 저장 사용자 인증 정보로 이동 사용자 인증 정보 만들기 -> OAuth 클라이언트 ID 선택 애플리케이션 유형 웹 애플리케이션 선택 요청 주소에 localhost:포트.. 2023. 7. 4.
[Spring Security] 3. 권한부여&오류수정과정 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 SecurityConfig에서 특수한 주소에는 전부 해당 권한이 있는 사용자만 접근가능하게 하기 저번글에서 SecurityConfig에 특정권한을 가진 사용자별로 접속할 수 있는 주소에 대해 차이점을 두었었다. @Bean public SecurityFilterChain configure(HttpSecurity http) throws Exception{ http.authorizeRequests() .antMatchers("/user/**").authenticated() ... 2023. 7. 4.
[Spring Security] 2. 로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 스프링시큐리티를 통해서 로그인하는 기능을 작성해보자 우선 loginForm.html에서 사용자가 입력한 username 과 password를 /login 으로 post형식으로 보내준다. sing in SecurityConfig에서 loginProcessingUrl에 /login으로 작성해주면 /login으로 오는 주소를 시큐리티가 낚아채서 대신 로그인을 해준다. 그후 기본 페이지로 "/" 로 이동하게 설정해준다. @Bean public SecurityFilterChain.. 2023. 6. 29.
[Spring Security] 1. 회원가입처리 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 가진 권한에 따라서 접속할 수 있는 url에 차별점을 주기위해서 SecurityConfg파일을 생성해준다. url주소에 /admin이 있다면 admin이나 manager 권한이 있는 사용자만 접근이 가능하고 /user, /admin, /manager가 없다면 권한이 없더라도 접근이 가능하게 permitAll을 작성해주고 비밀번호 해시화를 위해서 BcryptPasswordEncoder를 빈으로 등록해준다. @Configuration @EnableWebSecurity pub.. 2023. 6. 28.
[Spring Security] 0. 환경설정 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 우선 db 스크립트에서 새로운 데이터베이스를 생성 후 새로고침을 해주면 아래와 같이 데이터베이스가 추가된걸 확인할 수 있다. 블로그프로젝트에선 자바버전을 17버전 스프링부트 버전을 3.0.X버전을 사용해서 달라진점이 있어서 막히는 부분이 많았었는데 이번엔 자바버전 8 스프링부트 버전을 2.7버전으로 사용하였다. 우선 새로운 프로젝트만들기를 해서 해당 라이브러리들을 검색해서 추가해준다. 다음 application.properties를 application.yml로 변경해준.. 2023. 6. 28.