Springboot - Security (1) 환경설정

Yuri Lee·2020년 9월 11일
0

Springboot - Security

목록 보기
1/8
post-thumbnail

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, 비밀번호 저장한 거 넣으면 된다.


이 글은 유투버 데어 프로그래밍의 스프링 부트 시큐리티 강좌를 바탕으로 정리한 내용입니다.

profile
Step by step goes a long way ✨

0개의 댓글