개발서적읽기
-
[스프링 인 액션] Chapter 4 - 스프링 시큐리티 :: 각 폼에 로그아웃 버튼 추가하고 사용자 정보 보여주기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 16:03
마지막으로, 로그아웃 버튼과 사용자 정보를 보여주는 필드를 각 폼에 추가할 것이다. 우선, 사용자가 타코를 생성할 수 있는 디자인 페이지로 이동하는 참조와 로그아웃 버튼을 home.html에 추가하자. Taco Cloud Welcome to... Design a taco 다음으로, 사용자가 원하는 타코를 생성할 수 있는 디자인 페이지에 로그아웃 버튼을 추가하자. design.html 페이지를 수정하자. Taco Cloud Design your taco! Feelin' hungry, NAME? Ingredient Error Designate your wrap: INGREDIENT Pick your protein: INGREDIENT Choose your cheese: INGREDIENT Determine ..
-
[스프링 인 액션] Chapter 4 - 스프링 시큐리티 :: 사용자 인지하기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 15:55
사용자가 로그인되었음을 아는 정도로는 충분하지 않다. 사용자 경험에 맞추려면 그들이 누구인지 알아야 한다. 예를 들어, OrderController에서 주문 폼과 바인딩되는 Order 객체를 최초 생성할 때 해당 주문을 하는 사용자의 이름과 주소를 주문 폼에 미리 넣을 수 있다면 좋을 것이다. 그러면 사용자가 매번 주문을 할 때마다 다시 입력할 필요가 없기 때문이다. 또한 이보다 더 중요한 것으로, 사용자 주문 데이터를 DB에 저장할 때 주문이 생성되는 User와 Order를 연관시킬 수 있어야 한다.DB에서 Order 개체와 User 개체를 연관시키기 위해서는 Order 클래스에 새로운 속성 User를 추가해야 한다. package tacos; /* * @USER JungHyun * @DATE 2020..
-
[스프링 인 액션] Chapter 4 - 스프링 시큐리티 :: 웹 요청 보안 처리하기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 13:40
타코를 디자인하거나 주문하기 전에 사용자를 인증해야 한다는 것이 타코 클라우드 애플리케이션의 보안 요구사항이다. 그러나 홈페이지, 로그인 페이지, 등록 페이지는 인증되지 않은 모든 사용자가 사용할 수 있어야 한다. 그러기 위해선 SecurityConfig에서 configure(HttpSecurity)을 사용해야 한다. HttpSecurity를 사용해서 구성할 수 있는 것은 다음과 같다. - HTTP 요청 처리를 허용하기 전에 충족되어야 할 특정 보안 조건을 구성한다. - 커스텀 로그인 페이지를 구성한다. - 사용자가 애플리케이션의 로그아웃을 할 수 있도록 한다. - CSRF 공격으로부터 보호한다. ■웹 요청 보안 처리하기 /design과 /orders의 요청은 인증된 사용자에게만 허용되어야 한다. 그리고..
-
[스프링 인 액션] Chapter 4 - 스프링 시큐리티 :: 스프링 시큐리티 구성하기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 10:07
장황한 XML 기반의 구성을 포함해서 그동안 스프링 시큐리티를 구성하는 방법은 여러가지가 있었다. 다행스럽게도 최근의 여러 스프링 시큐리티 버전에서는 훨씬 더 알기 쉬운 자바 기반의 구성을 지원한다.이번 장이 끝나기 전까지 타코 클라우드 보안의 모든 요구사항은 자바 기반의 스프링 시큐리티 구성으로 구현하게 될 것이다. 우선 기본 구성 클래스를 작성해보자.package tacos.security; /* * @USER JungHyun * @DATE 2020-07-30 * @DESCRIPTION */ import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org..
-
[스프링 인 액션] Chapter 4 - 스프링 시큐리티 :: 스프링 시큐리티 활성화하기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 09:50
스프링 애플리케이션의 보안에서 맨 먼저 할 일은 스프링 부트 보안 스타터 의존성을 빌드 명세에 추가하는 것이다. org.springframework.boot spring-boot-starter-security org.springframework.security spring-security-test test 그리고 서버 실행 후 http://localhost:8080/login 페이지를 접속하면 이러한 스프링 시큐리티 기본 인증 대화상자가 나타난다. Username : user Password : Using generated security password: 8ad67f80-bd2a-4e33-a9bf-219ee4e2609f (Password는 콘솔창에 나와있다) 한번 접속해보자.스프링 시큐리티가 어떤 보안..
-
[스프링 인 액션] Chapter 3 - 데이터로 작업하기 :: 스프링 데이터 JPA를 사용해서 데이터 저장하고 사용하기개발서적읽기/Spring in Action 제 5판 2020. 7. 30. 00:05
스프링 데이터 프로젝트는 여러 개의 하위 프로젝트로 구성되는 다소 규모가 큰 프로젝트다. 그리고 대부분의 하위 프로젝트는 다양한 DB 유형을 사용한 데이터 persistence에 초점을 둔다. 가장 많이 알려진 스프링 데이터 프로젝트들은 다음과 같다. - 스프링 데이터 JPA : RDB의 JPA persistence - 스프링 데이터 MongoDB : 몽고 문서형 DB persistence - 스프링 데이터 Neo4 : Neo4j 그래프 DB persistence - 스프링 데이터 Redis : Redis 키-값 스토어 persistence - 스프링 데이터 카산드라 : 카산드라 DB persistence 스프링 데이터에서는 repository 인터페이스를 기반으로 이 인터페이스를 구현하는 reposit..
-
[스프링 인 액션] Chapter 3 - 데이터로 작업하기 :: JDBC를 사용해서 데이터 읽고 쓰기개발서적읽기/Spring in Action 제 5판 2020. 7. 29. 13:42
이 장에서는 RDB를 이용해 Data Persistence(저장 및 지속성 유지) 기능을 타코 클라우드 애플리케이션에 추가한다. RDB를 사용하는 방법 몇 가지가 있다. 그 중 JDBC와 JPA가 가장 많이 사용된다. JDBC와 JPA는 상용구 코드(Boilerplate code)를 상당히 없애준다는 장점이 있다. 스프링은 위 두 방법 모두 지원하고, 쉽게 사용할 수 있도록 해준다. 상용구 코드(Boilerplate code)란? 언어의 문법이나 형식 등의 이유로 거의 수정 없이 여러 곳에 반복적으로 사용해야 하는 코드 먼저 스프링에서의 JDBC 사용법을 익혀보자. 스프링은 JdbcTemplate 클래스를 사용하여 JDBC를 지원한다. JdbcTemplate은 JDBC를 사용할 때 요구되는 모든 형식적이..
-
[스프링 인 액션] Chapter 2 - 웹 애플리케이션 개발하기 :: 뷰 컨트롤러로 작업하기개발서적읽기/Spring in Action 제 5판 2020. 7. 29. 12:34
지금까지 타코 클라우드 애플리케이션의 세 가지 컨트롤러를 작성하였다. 1. HomeController 2. DesignTacoController 3. OrderController HomeController는 나머지 두개 컨트롤러와 다르게 모델 데이터나 사용자 입력을 처리하지 않는다. 이러한 간단한 컨트롤러의 경우는 다른 방법으로 컨트롤러를 정의할 수 있다. 이를 뷰 컨트롤러 라고 한다.package tacos; /* * @USER JungHyun * @DATE 2020-07-29 * @DESCRIPTION */ import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.an..