본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

Spring Series97

[Spring] Spring Security(6) - 암호화로 보안 강도 높이기 이번 포스팅에서는 사용자가 회원 가입할 때 데이터베이스에 암호화된 비밀번호를 저장하여 보안 강도를 강력하게 높여주는 방법을 다룰 것이다. 아이디 : test1, 원본 패스워드 : 1234 ("1234"가 위와 같이 복잡한 형태로 암호화된 모습) 소스 코드를 소개하기 앞서 암호화 방식에 대해 설명하고자 한다. Spring Security에서 제공하는 BCryptPasswordEncoder 클래스를 사용할 것인데, BCryptPasswordEncoder 클래스는 단방향 암호화를 제공하며, 패스워드 원문이 같더라도 암호화 할 때마다 값이 달라진다는 특징이 있다. 그 만큼 보안이 매우 강력하다. ※ 단방향 암호화 : 복호화가 불가능한 암호화 방식. 그렇다면 사용자도 암호화된 패스워드를 일일이 쳐서 로그인 해야하.. 2021. 2. 8.
[Spring] Spring Security(5) - 로그인 성공 커스터마이징 이전 포스팅에서는 로그인(인증)에 실패 했을 때의 처리를 돕는 로그인 실패 핸들러를 커스터마이징 했었다. kimcoder.tistory.com/249 [Spring] Spring Security(4) - 로그인 실패 커스터마이징 이번 포스팅에서는 Spring Security(3) 에서 소스 코드가 변경된 파일 위주로 설명하고자 한다. kimcoder.tistory.com/248 [Spring] Spring Security(3) - DB연동 Spring Security(1), (2)에서는 아이디, 비밀번호.. kimcoder.tistory.com 이번 포스팅에서는 로그인 성공 핸들러를 커스터마이징 해볼 것이고, 로그인한 사용자의 인증 정보가 들어있는 Authentication 객체도 다뤄볼 것이다. 그리고.. 2021. 2. 4.
[Spring] Spring Security(4) - 로그인 실패 커스터마이징 이번 포스팅에서는 Spring Security(3) 에서 소스 코드가 변경된 파일 위주로 설명하고자 한다. kimcoder.tistory.com/248 [Spring] Spring Security(3) - DB연동 Spring Security(1), (2)에서는 아이디, 비밀번호, 권한 설정을 security 설정 파일에 직접 작성했다. kimcoder.tistory.com/245 [Spring] Spring Security(2) - 로그인 페이지 구현 Spring Security(1) 포스팅에.. kimcoder.tistory.com 지금까지는 로그인에 실패 했을 때 다음과 같은 에러메세지가 출력되었다. 만약 오류 메세지가 복잡한 경우에는 내용 해석이 어려워질 것이며, 특히 위에 있는 credentia.. 2021. 2. 2.
[Spring] Spring Security(3) - DB연동 Spring Security(1), (2)에서는 아이디, 비밀번호, 권한 설정을 security 설정 파일에 직접 작성했다. kimcoder.tistory.com/245 [Spring] Spring Security(2) - 로그인 페이지 구현 Spring Security(1) 포스팅에서는 spring security에서 제공하는 로그인 페이지로 인증 절차를 거칠 수 있었다. kimcoder.tistory.com/244 [Spring] Spring Security(1) - 기본 사용법 만약 관리자 페이지처럼 특.. kimcoder.tistory.com 그러나 이런 설정들이 많아진다면 관리가 힘들어질 수 있다. 그래서 데이터 베이스에 아이디, 비밀번호, 권한 설정들을 담아서 관리하고자 한다. before -.. 2021. 2. 1.
[Spring] Mybatis 이전에 Spring에서 제공하는 데이터베이스 관리 객체인 JdbcTemplate에 대해 다룬 적이 있다. kimcoder.tistory.com/241 [Spring] JdbcTemplate JdbcTemplate는 DriverManager에 드라이버를 로드하고, Connection, Statement, ResultSet 관련 작업, 자원 해제 작업을모두 담당 해주기 때문에 상당한 소스코드를 줄일 수 있게 된다. 이제 Spring JdbcTemplate.. kimcoder.tistory.com 이번 포스팅에서 다룰 Mybatis는 JDBC API 호출 없이도 데이터베이스를 관리할 수 있으며, JdbcTemplate보다 간단하다. 필자도 개인적으로 JdbcTemplate보다는 Mybatis를 선호한다. 이제.. 2021. 1. 26.
[Spring] Spring Security(2) - 로그인 페이지 구현 Spring Security(1) 포스팅에서는 spring security에서 제공하는 로그인 페이지로 인증 절차를 거칠 수 있었다. kimcoder.tistory.com/244 [Spring] Spring Security(1) - 기본 사용법 만약 관리자 페이지처럼 특정 계정으로만 접근 해야하는 페이지를 만들어야 한다면 어떻게 할까? 이번 포스팅에서 다룰 Spring Security를 사용한다면 이 궁금증을 해결할 수 있다. 이제 사용법을 kimcoder.tistory.com 이번 포스팅에서는 직접 만든 로그인 페이지를 security 로그인 페이지로 적용시키는 방법을 소개한다. 먼저, 예제로 사용한 프로젝트 구성은 이렇다 1. 로그인 페이지 만들기 user, password를 입력받아 을 이용하여 l.. 2021. 1. 20.
[Spring] Spring Security(1) - 기본 사용법 만약 관리자 페이지처럼 특정 계정으로만 접근 해야하는 페이지를 만들어야 한다면 어떻게 할까? 이번 포스팅에서 다룰 Spring Security를 사용한다면 이 궁금증을 해결할 수 있다. 이제 사용법을 알아보자. 1. Dependency 추가 Spring Security를 사용하기 위해 pom.xml에 dependency 4개를 다음과 같이 추가해준다. 버전은 가급적 Spring 버전과 동일하게 하는게 좋다. 본인은 여기서 버전 문제로 상당한 시간을 날렸다. ... org.springframework.security spring-security-config 3.1.1.RELEASE org.springframework.security spring-security-core 3.1.1.RELEASE org.sp.. 2021. 1. 19.
[Spring] JDBC 트랜잭션 1. 개념 - 트랜잭션의 개념을 이해하기 전에 COMMIT과 ROLLBACK이 무엇인지 알 필요가 있다. COMMIT : 변경된 내용을 모두 영구적으로 저장하는 명령어 ROLLBACK : 문제가 발생 했을 때, 이전에 COMMIT 했던 시점으로 되돌리는 명령어 웹과 데이터베이스를 연동하는 테스트를 할 때, 명령프롬프트로 Oracle 데이터베이스에 접속하여 INSERT문으로 레코드들을 직접 추가하고 웹에서 SELECT문으로 전체 테이블을 불러오는 간단한 시스템을 만들어 사용했다. 그런데 직접 INSERT문으로 추가한 레코드들이 조회가 안되어서 무엇이 문제였나 고민해본적이 있었다. 결론은 데이터베이스에서 COMMIT; 명령으로 최종 저장을 하지 않은 것이 문제였던 것이다. 이렇게 변경된 내용을 모두 영구적으.. 2021. 1. 14.
[Spring] JdbcTemplate JdbcTemplate는 DriverManager에 드라이버를 로드하고, Connection, Statement, ResultSet 관련 작업, 자원 해제 작업을모두 담당 해주기 때문에 상당한 소스코드를 줄일 수 있게 된다. 이제 Spring JdbcTemplate의 사용법을 설정부터 차근차근 알아가보도록 하자. ※이 포스팅에서는 Oracle 데이터베이스를 사용함 1. dependency 추가 JdbcTemplate을 사용하기 위해 pom.xml에 다음과 같이 dependency를 추가해준다. ... org.springframework spring-jdbc 4.1.4.RELEASE 2. bean 추가 servlet-context.xml 에 2개의 bean을 추가로 작성한다. "dataSource" bea.. 2021. 1. 11.