본문 바로가기

Spring17

[Spring Boot][Error] BCryptPasswordEncoder Spring Security로 회원가입 / 로그인 / 로그아웃을 구현할때 BCryptPasswordEncoder를 사용했었습니다. 그때, DB에 Password를 암호화해서 저장하고... 실제로 로그인 시도가 있을때 이를 비교해서 인증된 사용자 인지 아닌지를 판단해서 그 이후 로직을 처리했습니다. 그때, 고려했던 방법은 아래의 2가지 였습니다. 그 중에 뒤에방식을 사용했었는데요... 왜 그렇게 구현했는지 실제로 눈으로 확인해 보겠습니다. Form으로 입력된 Password를 암호화 하여, DB의 암호화 된 Password와 equals로 비교하여 인증 Form으로 입력된 Password를 DB의 암호화 된 Password와 자체 제공하는 메서드를 통해서 비교하여 인증 1. equals( ) 실제로 DB에.. 2019. 12. 27.
[Spring Boot] 22. Spring Security (3) - Authorization 이번엔 지난번에 완성했던 Customize Form에 적용했던 Spring Security에 완성도를 더하겠습니다. 바로 Authorization과 Encryption 입니다. 권한과 암호화는 접근하기 힘들것 같지만 의외로 어렵지 않습니다. 그럼 바로 시작해 보겠습니다. 구현은 아래의 절차로 진행하겠습니다. 관련 DB table 생성 (Role_Info, User_Role) 회원가입 페이지 생성 및 관련 API 구현 View 페이지 구성 입력된 비밀번호는 암호화 적용하여 저장 로그인 시 Role 부여 1. 관련 DB table 생성 Authorization 구현을 위해서는 권한정보를 저장하는 Table... 사용자와 권한을 매핑하는 Table이 필요합니다. 그래서 2개의 Table을 추가하도록 하겠습니다.. 2019. 12. 26.
[Spring Boot] 21. Spring Security (2) - Customize Form 지난 번에는 Spring Security를 사용해서 Authentication을 사용하는 방법을 확인해 보았습니다. 그 중에서도 formlogin을 활용해서... 기본적으로 제공하는 /login을 통해 id/pass를 입력하고 해당 정보가 AuthenticationManager를 통해서 전달된 것 까지 확인해 보았습니다. 하지만 사실 Form을 통해서 login을 구현할때, 기본적으로 제공하는 화면을 그대로 사용하는 경우는 많지 않다고 생각됩니다. 역시 Spring Security에서도 사용자가 만든 form을 통해서 구현할 수 있게 메소드를 제공합니다. 그럼 이번에는 Customize Form을 사용해서 login/logout기능을 구현해 보겠습니다. 1. 신규 login 페이지 적용 temp로 제작하.. 2019. 12. 25.
[Spring Boot] 20. Spring Security (1) - Basic 이번에는 좀 복잡하다면 복잡한 Springpring에서 제공하는 보안에 대해서 알아보겠습니다. 이 보안을 제공하는 Spring Security에 대해서 알아보자면... 애플리케이션에 대한 Authentication 과 Authorization을 제공하는 Java 프레임워크입니다. 이 프레임워크는 Spring의 하위 프로젝트로 현재까지 지속적으로 버전이 업데이트 되고 있습니다. 보안에서 중요한 두가지 개념에 대해서 간단히 알아보자면... Authentication(인증) : 이 애플리케이션을 사용하기 위해 적합한 계정을 보유함을 확인하는 것 Authorization(권한) : 인증받은 사람이 해당 어플리케이션에서 어떤 수준으로 사용할지 부여하는 것 두가지 입니다. 딱 Spring Security가 제공하는.. 2019. 12. 23.