일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- Spotify Api
- Computer Science
- Gem
- programmers
- linux
- CS
- C++
- 파이썬
- spring boot
- SECS
- python
- regression
- Spring JPA
- SECS/GEM
- Baekjoon
- MYSQL
- c
- spotify
- 회귀
- 프로그래머스
- 자바
- 회원가입
- 백준
- SWEA
- SW Expert Academy
- Spring
- modern c++
- SECS-II
- 스포티파이
Archives
- Today
- Total
비버놀로지
[Spring JPA] 1-3. 회원 가입 : 컨트롤러 본문
728x90
GET "/sign-up" 요청을 받아서 account/sign-up.html 페이지 보여줍니다.
아래와 같이 컨트롤러를 만들어 줍니다.
package com.studyolle.account.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class AccountController {
@GetMapping("sign-up")
public String signUpForm(Model model) {
return "account/sign-up";
}
}
그리고 그냥 컨트롤러를 사용할 것이기 때문에 들어가게 될 sign-up.html을 만들어 줍니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sign-up Page</title>
</head>
<body>
<h2>Sign-up Page</h2>
</body>
</html>
그 후, 실행을 하게 되면
위와 같이 SpringSecurity가 나오는 것을 확인할 수 있습니다.
그래서 회원가입과 로그인 같은 곳에서 에러가 나지 않도록 해줘야 합니다.
그런문제를 해결하기 위해 SecurityConfig를 만들어 줍니다.
package com.studyolle.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/login", "/sign-up", "/check-email", "check-email-token", "email-login",
"check-email-login", "/login-link").permitAll()
.mvcMatchers(HttpMethod.GET, "/profile/*").permitAll().anyRequest().authenticated();
}
}
위와 같이 sign-up 페이지로 가는 것을 확인 할 수 있습니다.
그리고 controller를 확인 하기 위해 test를 만들어 줍니다.
위와 같은 위치에 test를 만들어 줍니다.
package com.studyolle.account.controller;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
@SpringBootTest
@AutoConfigureMockMvc
public class AccountControllerTest {
@Autowired private MockMvc mockMvc;
@DisplayName("회원 가입 화면 보이는지 테스트")
@Test
void signUpForm() throws Exception {
mockMvc.perform(get("/sign-up"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(view().name("account/sign-up"));
}
}
위와 같은 코드를 작성해 줍니다.
방식은 MockMvc를 활용해서 Controller가 동작을 하는지 확인 할 수 있도록 헀습니다.
728x90
'LANGUAGE STUDY > Spring' 카테고리의 다른 글
[Spring JPA] 1-6. 회원 가입 폼 서브밋 처리 (0) | 2021.04.30 |
---|---|
[Spring JPA] 1-5. 회원 가입 폼 서브밋 검증 (0) | 2021.04.30 |
[Spring JPA] 1-4. 회원 가입 : 뷰 (0) | 2021.04.30 |
[Spring JPA] 1-2. 계정 도메인 (0) | 2021.04.27 |
[Spring JPA] 1-1. 프로젝트 생성 (0) | 2021.04.26 |
Comments