1. DB 만들기
create user 'cos'@'%' identified by 'cos1234';
GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%';
create database security;
use security;
2. 프로젝트 생성
아니.. spring starter project 메뉴가 없어져서 뭐지 했는데..;;업데이트 했더니 다시 생김
Spring Boot DevTools는 내가 소스 파일을 변경했을 때 저장을 하면 프로젝트가 저절로 로딩됨.
Lombok는 getter, setter, 생성자 등 builder 패턴을 위해서
Spring Data JPA 는 orm 사용하기 위해
MySQL Driver는 DB 사용 위해
Spring Security 등록 해야 하고..
Mustache 라는 템플릿 엔진 사용할 것임
Spring Web 을 해야 웹과 관련된 어노테이션을 사용할 수 있음
3. application.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: yuri
password: yuri1123
mvc:
view:
prefix: /templates/
suffix: .mustache
jpa:
hibernate:
ddl-auto: create #create update none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: true
4. controller 패키지 만들고 IndexController.java 파일 만들기
이번에는 jsp 사용하지 않고 머스테지를 사용해보려고 한다. 스프링에서 권장하고 있는 템플릿 중 하나이다.
mvc:
view:
prefix: /templates/
suffix: .mustache
를 안 넣어도 된다. 우리가 머스테치를 사용한다고 등록을 해놓으면 (pom.xml에다가) 자동으로 이 경로가 잡힌다. 즉 생략 가능하다.
머스테치로 확장자를 적게 되면 만들때 굉장히 까다롭다. prefix를 html으로 해놓자.
//src/main/resources/templates/index.mustache 를 찾아가야 하는데 복잡하니까 바꾸자..
5. config 패키지 만들고 WebMvcConfig.java 만들자.
override 해서 MustacheViewResolver 를 재설정 할 수 있다. 내가 만든 뷰에 인코딩은 기본적으로 UTF-8이고, 내가 너한테 던지는 데이터는 html 파일이야. 그리고 그것은 utf-8이야. classpath가 프로젝트 경로라고 생각하면 된다. 그러면 머스테치가 인식하게 된다. 그리고 마지막으로 registy에 뷰리졸브를 등록하면 된다.
6. run 해보자..
그럼 콘솔에 Using generated security password 가 뜰 것이다. 기본적으로 스프링은 시큐리티로 의존성을 설정하게 되면 홈페이지로 들어가는 모든 주소가 막혀서 인증이 필요한 홈페이지가 된다. 그래서 최초에는 id user, 비밀번호 저장한 거 넣으면 된다.
이 글은 유투버 데어 프로그래밍의 스프링 부트 시큐리티 강좌를 바탕으로 정리한 내용입니다.