Framework & Library/Spring Security
-
Spring Security JWT - Filter 등록Framework & Library/Spring Security 2021. 10. 8. 11:16
Filter 클래스 생성 public class MyFilter01 implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("필터01"); filterChain.doFilter(servletRequest, servletResponse); } } ㆍ filter 패키지를 만든 후 MyFilter01 클래스를 생성한다. ㆍ MyFilter01 클래스가 필터의 역할을 하기 위해서는 Filter 인터페이스를 구현하는 ..
-
Spring Security JWT - 시큐리티 설정Framework & Library/Spring Security 2021. 10. 7. 19:43
User 객체 생성 @Data @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String username; private String password; private String roles; public List getRoleList() { if (this.roles.length() > 0) return Arrays.asList(this.roles.split(",")); return new ArrayList(); } } ㆍ model 패키지를 만든 후 사용자의 정보를 정의한 User 객체를 생성한다. ㆍ User 객체는 id, username, passwor..
-
Spring Security JWT - 프로젝트 생성 및 환경설정Framework & Library/Spring Security 2021. 10. 7. 16:19
Spring Boot 프로젝트 생성 ㆍ 위 사진과 같은 의존성을 포함한 Spring Boot 프로젝트를 생성한다. JWT 의존성 추가 ㆍ pom.xml 파일에 JWT 라이브러리에 대한 의존성을 추가하는 코드를 작성한다. applicatoin.yml 설정 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/security?serverTimezone=Asia/Seoul username: qlsdud password: ql..
-
Spring Security - 네이버 로그인Framework & Library/Spring Security 2021. 10. 5. 11:53
API 설정 프로젝트생성 ㆍ 네이버 개발자 홈페이지에 접속을 한 후 위 사진에 표시된 "애플리케이션 등록" 버튼을 클릭한다. ㆍ 애플리케이션 정보를 위 사진과 같이 작성한 후 "등록하기" 버튼을 클릭한다. ㆍ 애플리케이션을 등록한 후 Client ID와 Client Secret을 확인한 후 프로젝트 생성을 마친다. Spring Security 설정 application.yml 파일 수정 ㆍ application.yml 파일에 위 코드를 추가하여 네이버 로그인을 위한 설정을 마무리한다. ㆍ client-id와 client-secret에는 네이버 개발자 홈페이지에서 발급받은 Client ID와 Client Secret을 적는다. ㆍ oauth-client 라이브러리에는 provider로 네이버가 등록되어 있..
-
Spring Security - 페이스북 로그인Framework & Library/Spring Security 2021. 10. 4. 22:34
API 설정 프로젝트생성 ㆍ 페이스북 개발자 홈페이지에 접속을 한 후 위 사진에 표시된 "내 앱" 버튼을 클릭한다. ㆍ "내 앱"에 접속한 후 "앱 만들기" 버튼을 클릭한다. ㆍ 앱 유형을 "없음"으로 선택한 후 "다음" 버튼을 누른다. ㆍ 표시 이름을 spring-security-basic으로 정한 후 "앱 만들기" 버튼을 클릭한다. ㆍ 앱을 만든 후 Facebook 로그인 "설정" 버튼을 클릭한다. ㆍ 설정에 들어온 뒤 "웹" 버튼을 클릭한다. ㆍ 사이트 URL을 "http://localhost:8080"으로 설정한 후 "Save" 버튼을 눌러 저장한다. ㆍ 설정 카테고리의 "기본 설정" 버튼을 누른 후 앱 ID와 앱 시크릿 코드를 확인하고 프로젝트 생성을 마무리한다. Spring Security 설..
-
Spring Security - 구글 로그인 및 자동 회원가입Framework & Library/Spring Security 2021. 10. 4. 15:00
UserDetails, OAuth2User 타입의 통합 PrincipalDetails 클래스 수정 ㆍ 로그인 사용자의 정보와 OAuth 로그인 사용자의 정보를 받는 타입이 UserDetails, OAuth2User로 서로 다르기 때문에 구현하는데 불편함이 있었다. ㆍ 이러한 불편함을 없애기 위해 두 개의 타입을 처리할 수 있는 클래스가 필요하다. ㆍ 위 사진과 같이 기존의 PrincipalDetails 클래스에 OAuth2User 인터페이스를 추가로 구현한다. ㆍ OAuth 로그인 사용자의 정보를 받기 위해 Map 타입의 변수인 attributes를 선언하고, 생성자를 추가한다. ㆍ OAuth2User 인터페이스를 구현하고 getAttributes() 메서드와 getName() 메서드 위 사진과 같이 오..