1) 인텔리제이에서 maven 프로젝트를 아래와 같은 의존성을 추가시켜 생성.

원래는 STS로 진행하는 방식이나 계속해서 설치 오류가 발생해서, 거기서 너무 오랜 시간을 보낼 수 없기 때문에 기존에 사용하고 있던 인텔리제이로 진행해 보기로 했다.
2) Mysql에 아래의 코드를 입력한다.
create user 'cos'@'%' identified by 'cos1234';
GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%';
create database security;
use security;
create user 'cos'@'%' identified by 'cos1234';
- 이 명령어는 Mysql에 새로운 사용자를 생성하는 명령어이다.
- 'cos'는 사용자 이름을 나타내며, '%'는 어떤 호스트에서든 접근을 허용함을 의미한다.
GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%';
- 이 명령어는 'cos' 사용자에게 모든 db와 테이블에 대한 모든 권한을 부여하는 명령어이다.
- 'ALL PRIVILEGES' 는 모든 권한을 나타내며, '*.*' 는 모든 DB와 테이블을 대상으로 한다는 의미이다.
3) apllication.yml 파일에 아래와 같이 설정해준다.

4) Controller 작성
@Controller
public class IndexController {
@GetMapping({"","/"})
public String index() {
return "index";
}
}
⭐여기서 새롭게 알게 된 사실~~
@GetMapping 안에 값이 평상시에 보는 것과는 달라서 알아보니 평상시에는
@GetMapping("/") 이런 식으로 작성하면 🔜 localhost:8080/
그런데 이 경우에는 🔜 localhost:8080 이런 식으로 요청해도 된다는 말~

동시에 1개 이상의 경로를 지정할 수 있다!!
5) config 파일 작성
@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);
}
}
WebMvcConfigurer 인터페이스
- 이 인터페이스를 구현하여 spring web MVC의 설정을 커스터마이징 할 수 있다.
MustacheViewResolver resolver = new MustacheViewResolver();
- Mustache 템플릿을 처리할 뷰 리졸버 객체를 생성한다.
resolver.setCharset("UTF-8")
- 문자 인코딩을 UTF-8로 설정한다. 템플릿 및 출력에 대한 문자 인코당을 정의한다.
resolver.setPrefix("classpath:/templates/")와 resolver.setSuffix(".html"):
- Mustache 템플릿 파일의 위치와 확장자를 설정합니다.
이 코드에서는 클래스패스(classpath)에 있는 "/templates/" 디렉토리 내에서 ".html" 확장자를 가진 템플릿 파일을 찾도록 설정한다.

요약하면, 이 코드는 Spring Web MVC 애플리케이션에서 Mustache를 템플릿 엔진으로 사용하도록 설정하고, Mustache 템플릿 파일은 클래스패스 내의 "/templates/" 디렉터리에서 찾도록 지정합니다. 설정된 MustacheViewResolver를 사용하여 뷰를 처리하게 된다.
6) 실행시켜 확인해 보기~!!


⛔여기서 잠깐~!!!
나는 /login에 대한 요청을 처리한 적이 없는데 왜 이런 화면이 나오는 거지??
Spring Security는 기본적으로 /login 경로를 로그인 페이지로 설정하며, 만약 사용자가 로그인을 하지 않았을 때 자동으로 해당 페이지로 리디렉션 한다.
Spring Security는 /login 경로로 요청이 들어왔을 때 자동으로 기본 로그인 페이지를 보여준다.

위에 콘솔에 있는 노란색 박스에 있는 비밀번호를 복붙 해서 넣어준다.
id는 기본적으로 'user' 이다.

저렇게 로그인하고 나면 지정해 줬던 view가 나타난다!!!

[출처 : 인프런 - 스프링부트 시큐리티 & JWT 강의]
'개발공부 > spring security & JWT 강의' 카테고리의 다른 글
[6강] 구글 로그인 준비 (0) | 2023.09.22 |
---|---|
[5강] 메소드 단위로 권한 설정하기 - @Secured (0) | 2023.09.21 |
[4강] 스프링 시큐리티 로그인 구현 - '?error' 발생 (0) | 2023.09.20 |
[3강][4강] spring security 회원가입/로그인 (1) | 2023.09.16 |
[2강] spring security 설정 (예제) (0) | 2023.09.15 |