현재 진행중인 프로젝트에서 api를 활용해 젤리 영양성분 정보를 받아오거나 수정, 관리등을 하는 기능을 구현하는 와중에 사용자의 권한에 따라 접근할 수 있는 메소드가 달라야 할 필요성이 생겼다. 그래서 spring security를 조금 알아보기로 하였다!엔터프라이즈
지난 번에는 환경설정 이후 로그인 화면이 뜨는 것까지 확인하였다.위 url을 입력하면 따로 메서드를 만들지 않았지만 로그아웃이 이뤄진다.기존 controller에 메서드를 추가하였다.다른 메서드에 접근을 하면 return값들이 제대로 뜨지만 login에 접근하면 sec
앞서 권한이 필요한 페이지와 권한이 필요하지 않는 페이지를 구분하여 구현을 하였다.이제 권한이 필요한 페이지 요청이 들어오면 로그인 폼을 거치도록 구현해보자!!기존 login페이지를 loginForm페이지로 변경하고 @ResponseBody제거그런데 로그인을 하려면 먼
지난번까지 회원가입 기능을 구현하였다. 이제 로그인 기능을 구현해보자!"/login"으로 접근을 하면 security가 낚아채서 대신 로그인을 처리해준다. 따라서 따로 컨트롤러에 login메소드를 만들지 않아도 된다.defaultSuccessUrl은 loginForm페
이제 각 페이지별로 권한을 설정해보자!manager와 admin권한을 가진 계정을 생성하기 위해 일단 두 개의 계정을 생성하자각 계정의 권한을 쿼리문을 이용하여 수정해줬다.이제 manager계정을 가지고 각 페이지에 접근해보자manager권한을 가진 계정으로 로그인을
구글 API에 접속파란 박스 누르고 새 프로젝트 추가aouth동의 화면에 들어가 외부를 필요 자료 작성사용자 인증정보에 들어가 oauth 클라이언트 id 선택아래와 같이 설정해야 하는데 oauth2라이브러리를 사용할 경우 '/login/oauth2/code'이 부분은
코드받기(인증)2.엑세스토큰 받기(권한)3.사용자 정보를 가져오고정보를 토대로 회원가입을 자동으로 진행시키기도 한다.4-2 (이메일, 전화번호, 이름, 아이디) 에 더해 쇼핑몰일 경우 집주소, 백화점의 경우 vip여부 정보가 필요할 경우에는 추가적인 정보를 추가적으로
구글 로그인 버튼 클릭 -> 구글 로그인 창 -> 로그인을 완료 -> code를 리턴(Oauth-client라이브러리 -> AccessToken 요청 = userRequest정보가 생성 -> loadUser함수 호출 -> 구글로부터 회원 프로필을 받아준다.loadUse
앞서 스프링 시큐리티 세션에 접근하기 위해 Authentication을 사용하고 Authentication을 사용하기 위해 UserDetails와 OAuth2User를 상속받는 PrincipalDetails를 생성하여 Authentication의 매개변수로 넣어주었다.
페이스북 개발자 콘솔에 접속내 엡에서 새 앱 추가앱 유형은 없음로그인 api선택웹 선택 후 url 입력 \- 이후에는 계속만 누르면 된다!기본설정에서 id/password확인공식 문서는 페이스북 로그인 api 공식 문서페이스북 로그인 버튼을 추가해주자이제 페이스북 로그
OAuth2클라이언트의 provider마다 제공하는 값들의 키 값이 다르다. 예를 들어 providerId의 경우 구글은 sub로, facebook은 id라는 키 값으로 제공했다. 따라서 각 프로바이더에게 값을 제공 받기 위해서는 각 프로바이더의 공식 문서를 참조해볼
start.spring.io에서 아래와 같이 프로젝트를 하나 생성하자jwt의 형태응 아래와 같다헤더와 페이로드를 base64로 인코딩하고, 헤더+페이로드+비밀키로 시그니처를 생성하고 다시 base64로 인코딩한다.maven repository에서 java jwt를 검색
지난번까지 해서 Security 설정을 마쳤다. 이제 filter를 생성하고 등록해보자!filter 패키지를 생성하여 클래스를 생성해주자이제 filter를 등록해주자그런데 filterChain의 리턴 타입은 SecurityFilterChain으로 Filter와 리턴 타
지난 포스팅에서 직접 필터를 생성하여 등록하고 동작하는 것까지 확인해보았다.이번에는 임시 토큰을 생성하고 테스트도 해보자!request의 http헤더에서 Authorization를 꺼내 출력을 해보자. 아래처럼 당연히 null이 나올것이다.이제 다시 아래처럼 수정해보자
지난 포스팅까지 해서 필터를 등록하고 동작하는 것까지 확인해 보았다. 이제 jwt로그인을 위한 준비를 해보자. 먼저 로그인을 위한 준비 작업을 해주자UserDetails역할을 할 PrincipalDetails를 생성해주자이제 username을 받아 PrincipalDe
지난 포스팅에서 loginForm()메서드를 사용하지 않고 직접 필터를 등록하여 로그인을 시도할 수 있도록 설정하였다. 이번에는 강제 로그인을 진행해보자!로그인 기능을 구현하기 전에 회원가입을 먼저 진행해보자JwtApplication에 BCryptPasswordEnco
jwt를 이용해 개인정보에 접근하면 전자서명을 통해 접근이 가능하도록 구현해보자이제 이 필터를 등록해주자이제 포스트맨으로 login을 시도하고, 권한이 필요한 페이지인 '/api/v1/user/'로 접근해보자username과 password가 일치했다면 응답으로 aut