Framework & Library/Spring Security

Spring Security - 프로젝트 생성 및 환경설정

임빈영 2021. 9. 30. 14:21

MySQL 사용자 및 DB생성

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

위에 sql 문을 차례대로 실행해서 사용자 및 DB를 생성한다.


Spring Boot 프로젝트 생성

위 사진과 같은 의존성을 포함한 Spring Boot 프로젝트를 생성한다.


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: qlsdud
    password: qlsdud0604

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

application.properties 파일을 application.yml 파일로 변경한 후 위 코드를 작성하여 설정을 마무리한다.


Controller 생성

@Controller 
public class IndexController {

    @GetMapping({"", "/"})
    public String index() {
        return "index";
    }
}

controller 패키지를 만들고 IndexController를 생성한 후 위와 같은 코드를 작성한다.

기본적으로 Mustache 의존성이 설정되어있기 때문에 index() 메서드와 매핑된 url로 접속을 했을 때 index.mustach 파일을 리턴하도록 되어있다.


WebMvcConfig 생성

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);
    }
}

config 패키지를 만들고 WebMvcConfig 파일을 생성한 후 위와 같은 코드를 작성한다.

위 코드는 .html 파일을 .mustache 파일로 인식이 가능하도록 설정하는 코드이다.

위 코드를 통해 .mustach가 아닌 .html 파일을 사용해서 프로젝트를 수행할 수 있다.


서버 실행

서버를 실행시킨 후 로컬 서버에 접속을 하면 다음과 같은 화면이 출력되는 것을 확인할 수 있다.

스프링 부트가 기본적으로 스프링 시큐리티를 의존성으로 설정하였다면 모든 url이 막히기 때문에 인증이 필요한 페이지가 된다.


 

GitHub - qlsdud0604/spring-security-basic: 스프링 시큐리티의 기초를 학습하는 공간

스프링 시큐리티의 기초를 학습하는 공간. Contribute to qlsdud0604/spring-security-basic development by creating an account on GitHub.

github.com

 

728x90