전체 글
-
Spring Security JWT - JWT를 위한 로그인 시도Framework & Library/Spring Security 2021. 10. 8. 17:34
Repository 생성 public interface UserRepository extends JpaRepository { User findByUsername(String username); } ㆍ repository 패키지를 만들고 위 코드와 같이 UserRepository 인터페이스를 생성한다. ㆍ 사용자의 username을 통해 User 객체를 반환하는 findByUsername() 메서드를 작성해준다. PrincipalDetails 클래스 생성 public class PrincipalDetails implements UserDetails { private User user; public PrincipalDetails(User user) { this.user = user; } @Override p..
-
Spring Security JWT - 임시 토큰을 통한 테스트Framework & Library/Spring Security 2021. 10. 8. 14:43
MyFilter01 클래스 수정 ㆍ 필터의 역할을 하는 MyFilter01 클래스를 위 코드와 같이 수정한다. ㆍ POST 방식의 요청이 올 경우에만 동작을 하도록 설정을 하였으며, header를 통해 전송된 내용이 "test token"일 경우 정상적으로 처리하도록 하였고 그게 아닐 경우 실패 처리를 하도록 하였다. 컨트롤러 생성 ㆍ RestApiController 클래스에 위 사진에 표시된 token() 메서드를 추가한다. ㆍ token() 메서드는 매핑된 url로 POST 요청이 왔을 때 "token"의 데이터를 응답하도록 하는 메서드이다. 테스트 "not test token" 전송 ㆍ 테스트는 Postman을 통해서 진행하였다. ㆍ header의 Authorization의 value 값을 "not..
-
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로 네이버가 등록되어 있..