Spring Boot

SpringBoot Security 설정(application.yml 및 mustache)

박도치 2023. 5. 31. 22:50

Security를 함에 앞서 기본적으로 controller에서  tempaltes의 웹 브라우저를 return해주는 설정을 알아볼 예정이다.

 

먼저 application.yml 설정이다. 초기에 application.properties로 돼있는 파일을 application.yml로 바꿔주면된다.

 

이후 아래와 같이 port를 지정해준다. 필자는 8000 port를 쓰지만, 보통 8080을 많이쓴다고 한다.

server:
  port: 8000
  servlet:
    context-path: /
    encoding:
      charset: UTF-8
      enabled: true
      force: true

 

mustahce는 기본적으로 dependency가 있어야 하기 때문에 아래 dependency를 pom.xml에 추가해준다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mustache</artifactId>
</dependency>

 

Controller 패키지 내의 indexController Class

@Controller
public class IndexController {

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

일단 @Controller를 달아 해당 Class를 Controller라고 지정해준다.

 

Mapping 에서 {}를 이용하면 다중 mapping을 할 수 있다.

 

index를 호출하는데 index.html을 호출하는데 왜 index만 return 하느냐

 

머스테치 기본폴더는 src/main/resorurces/ 인데 여기서 뷰 리졸버 설정은 templates(prefix)이고, .mustache(suffix)이다.

 

이를 application.yml에서도 설정을 할 수 있지만, WebMvcConfg Class를 따로 만들어 해결해줄 예정이다.

 

Config 패키지 내의 WebMvcConfig Class

@Configuration
public class WebMvcConfig implements WebMvcConfigurer{

	
	@Override
	public void configureViewResolvers(ViewResolverRegistry registry) {
		
		MustacheViewResolver resolver = new MustacheViewResolver();
		resolver.setCharset("UTF-8"); // 내가 만드는 view에 인코딩은 UTF-8
		resolver.setContentType("text/html; charset=UTF-8"); // 내가 던지는 데이터는 html 파일이고 이의 charset은 UTF-8이다.
		resolver.setPrefix("classpath:/templates/"); //preFix는 /templates/ 이고 앞의 classpath는 해당 패키지이다.
		resolver.setSuffix(".html"); //suffix는 .html이다
		
		registry.viewResolver(resolver);
	
	}
}

 

 

그리고 templates 폴더 내에 index.html이라는 파일을 생성해주고 테스트해보면된다.

 

 

 

그리고 웹 페이지를 켜서 localhost:8000 이라고 치면

 

이렇게 나온다 이는 Spring Security에서 기존에 설정되어있는 로그인 페이지이며 비밀번호는 콘솔창에 뜬다. 저장할 때 마다 비밀번호가 바뀌기 때문에 주의하도록 하자

위와같이하면 기본yml설정과, html을 잘 불러오는지 테스팅이 완료가 된다.

'Spring Boot' 카테고리의 다른 글

Spring Boot Security 회원가입 Form  (0) 2023.06.02
Spring Security SecurityFilterChain 설정  (2) 2023.06.01
REST API 와 API 의 뜻  (0) 2023.02.21
웹의 동작, HTTP 프로토콜이란  (0) 2023.02.16
@RequestMapping과 객체 전달  (0) 2023.02.14