Spring

    Spring Security - User Registration

    참조한 강의 : www.udemy.com/course/spring-hibernate-tutorial/ - Spring Security & JDBC 앞의 포스팅까지는 DB 와 연동하는게 아니라, 그냥 스프링 앱 메모리에 유저 데이터를 저장해서 인증하는 방식이었는데, 당연히 실제 업무나 상품으로써 내놓을려면 DB 에 저장해놓는게 일반적이다. 그래서 이번 포스팅에서는 DB 와 Spring Security 를 연동하는 방법과 BCrypt 를 이용해서 암호화하여 비밀번호를 저장하는 방법 그리고 회원가입을 만드는 방법에 대해 알아본다. 먼저 DB 와 Spring Security 를 연동하는 방법에 대해 알아본다 Spring Security 와 DB 를 연동할때 주의할점은, Spring Security 가 기본값으로..

    Spring Security - User Roles

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Role Spring Security 를 사용하면 유저의 아이디와 비밀번호에 대한 검증 뿐 아니라, 유저의 타입에 대해서도 검증할 수가 있다. 이 유저가 관리자 계정인지 아니면 일반 직원 계정인지, 아니면 제 3 자의 계정인지 이런것들을 판별할 수 있는데, spring security 에선 이 유저의 역할 즉, role 을 지정해줄 수 있다. role 이 어떤 상수 값이 있는게 아니고, 개발자가 임의로 만들 수 있고, 각 유저에게 부여할 수 있다. 이번 포스팅에서는, role 설정을 어떻게 하는지, 그리고 role 에 따른 웹 리소스 접근..

    Spring Security - CSRF (Cross Site Request Forgery)

    - CSRF (Cross Site Request Forgery) : 직역을 하면 사이트간 요청 위조 라는 의미로, 유저가 자신의 의지와는 무관하게 공격자가 의도한 행동을 해서 특정한 웹페이지 보안을 취약하게 만들거나, 수정, 삭제, 등록 등의 작업을 하게 만들어 공격하는 방법을 말한다. 예를들면, 2008년 옥션에서 발생한 해킹 사건이 있었는데, 그 해킹 수법도 CSRF 를 이용했다고 한다. 옥션 관리자 중 한명이 관리자 권한으로 사내에서 작업을 하던 중 메일을 조회했고, 관리자 권한으로 사내에서 작업하고 있었기 때문에 유효한 쿠키값을 갖고 있는 상태에서 메일을 조회했던것이다. 그리고 이메일에 해커가 숨겨놓은 코드가 실행되서 관리자의 id 와 pw 를 탈취하는 그런 경우가 있었다. - 방어 방법 1. R..

    Spring Security - Custom Login Form

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이전 포스팅에서는 Spring Security 를 설정하는 방법에 대해서 알아보고 아래와 같이 기본으로 제공하는 로그인 화면까지 봤었다. 기본 화면도 그렇게 나쁘진 않은것 같으나, 보통은 웹 사이트별로 자체적인 로그인 화면을 갖고 있는 경우가 많다 그래서 커스텀한 로그인 페이지를 어떻게 만드는지 그리고 로그아웃은 어떻게 하는지 알아본다. - Modify Spring Security Configuration : 이전 포스팅에서는 Spring Security 설정 파일인 DemoSecurityConfig.java 에 configure(Authen..

    Spring Security - Configuration

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이전 포스팅에서 간단하게 Spring Security 가 무엇인지 알아봤으니, 이번에는 Spring Security 를 프로젝트에 설정하는 방법에 대해서 알아본다. 이전 포스팅들에서 다뤘던 다른 스프링 프로젝트들과 마찬가지로, Spring Security 도 xml 파일로 설정하는 방법 혹은 xml 파일없이 어노테이션을 이용한 순수 자바 파일로만 설정하는 방법 2가지가 있다. 여기서는 어노테이션을 이용한 순수 자바 파일로 설정하는 방법만을 다루겠다. xml 파일로 설정하는 방법은 아래 사이트 참조 - xml 로 spring security 설..

    Spring Security - Overview

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Spring Security Spring Security 는 Spring Framework 기반의 자바 어플리케이션 개발시에 사용되는 보안관련 프로젝트로, 유저에 대한 인증, 권한 관리, 암호화 등의 기능을 사용할때 주로 사용된다. 웹 사이트에 기본적으로 탑재되어 있는 로그인, 회원가입 등의 기능을 개발할때 사용된다. - 작업 흐름 Spring Security 를 통해서 작업을 할때 이뤄지는 전체적인 흐름을 간략하게 그림으로 표현하면 아래와 같다. 웹 브라우저로부터 어떤 요청이 들어오면, 해당 요청이 만약 암호화된 웹 리소스에 대한 접근 ..

    Maven 이란

    참고한 강의 : www.udemy.com/course/spring-hibernate-tutorial/ - Maven : Maven 은 자바 프로젝트 관리 툴로, 프로젝트와 프로젝트 내부에 필요한 의존성들에 대해서 빌드하는데 사용된다. Maven 같은 툴이 없이 자바 프로그램을 개발한다면, 자바가 기본적으로 제공하는 라이브러리 외의 내용들을 추가하고 싶을때 매번 JAR 파일을 다운 받아서 프로젝트에 넣어준뒤, class path 를 설정해줘야했다. 예를들어, Hibernate ORM 이 필요하면 Hibernate 사이트에가서 JAR 파일 받아오고, Spring 관련 JAR 파일이 필요하면 Spring 사이트에 가서 JAR 파일 받아오고 등등 이런 귀찮은 작업을 매번해줘야 했다. 이런 수고를 덜어주기 위해 ..

    Spring Framework - AOP 코드 예제

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 앞선 포스팅에서 AOP 에 대해서 간략하게 알아봤으니 이번에는 몇가지 예제를 살펴보면서 Spring AOP 를 구체적으로 어떻게 사용하는지 알아본다 - @Before Advice 타입에는 아래와 같은 종류가 존재한다. - @Before - @After - @AfterReturning - @AfterThrowing - @Around 이 중에서 먼저 @Before 에 대해 알아본다. @Before 는 Aspect 를 부여할 타겟으로 삼은 메소드가 실행되기 이전에 먼저 실행되는 Aspect 를 정의할때 사용된다. (아래의 예제들은, 아주 간단하게 ..