Spring Security로 철벽당함
IOC 컨테이너에 등록하기
다음에는 SecurityFilterChain 추가하기
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf().disable(); // CSRF 해제: 모든 요청 다 받을 수 있음
http.formLogin()
.loginPage("/loginForm")
.loginProcessingUrl("/login")
.successHandler((request, response, authentication) -> {
log.debug("디버그 : 로그인 성공");
}) // 성공시
.failureHandler((request, response, exception) -> {
log.debug("디버그 : 로그인 실패 : " + exception.getMessage());
}); // 실패시
http.authorizeRequests(
authorize -> authorize.antMatchers("/auth/**").authenticated()
.anyRequest().permitAll());
return http.build();
}
실행 후 다시 /auth/** 로시작하는 아무거나 입력시 전부 login으로 돌아감
화면 가져오기(WEB-INF 파일만 복붙)
https://github.com/codingspecialist/Springboot-There-Blog-RealTime
해당 폴더는 다이렉트로 접근이 불가능 -> 따라서 controller를 타고 가야만 함. -> 강제 MVC 패턴
application-dev 보면 prefix가 /WEB-INF/views/로 되어있음. 그러면 당연하게 webapp 은 어디로갔냐??
webapp은 디폴트 경로임
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
이게 들어가면 webapp이 웹 서버로 디폴트됨
suffix(viewResolver)로 controller가 찾기 편하게 세팅하는 것, 왜냐하면 없으면 너무 힘듬(dispatcher servlet할때 개고생한 것을 떠올리면 됨)
다음은 css, images 등록
그리고 .jsp 파일에는 footer, header가 전부 존재
따라서 위 아래에는 그림이 들어가고 가운데에 우리가 작업을 하면 되는 것
package coffee.pastry.joshuablog.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/hello")
@Controller
public class HelloController {
// user
@GetMapping("/joinForm")
public String joinForm() {
return "user/joinForm";
}
@GetMapping("/loginForm")
public String loginForm() {
return "user/loginForm";
}
@GetMapping("/user/updateForm")
public String userUpdateForm() {
return "user/updateForm";
}
@GetMapping("/user/profileUpdateForm")
public String profileUpdateForm() {
return "user/profileUpdateForm";
}
// board
@GetMapping({ "/", "/board" })
public String main() {
return "board/main";
}
@GetMapping("/board/{id}")
public String boardDetail() {
return "board/detail";
}
@GetMapping("/board/saveForm")
public String boardSaveForm() {
return "board/saveForm";
}
@GetMapping("/board/{id}/updateForm")
public String boardUpdateForm() {
return "board/updateForm";
}
}