[Spring Security] 1. 환경설정

개발자·2022년 4월 28일
0

Spring Security

목록 보기
1/11
post-thumbnail

목차

  • Spring Security란
  • OAuth 로그인
  • JWT Token 을 이용한 서버구축

환경설정

1. MySQL Workbench에 Query 보내기

create user 'cos'@'%' identified by 'cos1234';
GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%';
create database security;
use security;

2. 프로젝트 생성

https://start.spring.io/

Dependencies 설정

  • Spring Boot DevTools
  • Lombok
  • Spring Data JPA
  • MySQL Driver
  • Spring Security
  • Mustache
  • Spring Web

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: cos
    password: cos1234

  jpa:
    hibernate:
      ddl-auto: create #create update none
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    show-sql: true

3. 프로젝트 구성

resources/templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>인덱스 페이지</title>
</head>
<body>
<h1>인덱스 페이지 입니다.</h1>
</body>
</html>

controller/IndexController.java

package com.cos.securiy1.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller // View Return
public class IndexController {

    @GetMapping({"","/"})
    public String index(){
        // 머스테치 기본폴더 src/main/resources/
        // ViewResolver 설정 : templates (prefix) , mustache(suffix) - 생략 가능.
        return "index"; // src/main/resources/templates/index.mustache 를 찾게된다.
    }
}
  • 기본화면을 테스트하기 위한 IndexController를 생성한다.

  • "", "/" 를 GetMapping으로 받게되면 index 파일의 View를 return

  • Mustache의 기본폴더는 src/main/resources/ 이다.

  • Mustache는 index.mustache 파일을 찾게되는데 우리가 저장한것은 html파일이기 때문에 설정을 해줘야한다.

  • 따라서 다음과 같이 설정을 한다.

config/WebMvcConfig

package com.cos.securiy1.config;

import org.springframework.boot.web.servlet.view.MustacheViewResolver;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        MustacheViewResolver resolver = new MustacheViewResolver();
        resolver.setCharset("UTF-8");
        resolver.setContentType("text/html; charset=UTF-8");
        resolver.setPrefix("classpath:/templates/");
        resolver.setSuffix(".html");

        registry.viewResolver(resolver);
    }
}
  • @Configuration 애노테이션 ( 설정파일을 만들기위한 )

  • WebMvcConfigurer 를 implements 하여 메소드를 오버라이드한다.

  • 다음과 같이 설정하여 html 파일을 기본으로 설정할 수 있다.

4. 프로젝트 테스트

  • index.html 화면이 아닌 다음과 같은 화면으로 넘어가게된다.

  • Spring Security를 설정하였기 때문.

  • 로그인을 하면 기본설정한 index.html View 로 넘어가게 된다.

  • 실행을 하게 되면 다음과 같이 비밀번호가 생성된다.

  • 아이디는 user를 입력하고 비밀번호는 다음 코드를 복사한다.

  • 로그인에 성공하여 화면을 나타나게 하였다!

출처

  • Youtube 메타코딩

0개의 댓글