1. @Controller 는 무엇일까요? 전통적인 Spring MVC의 컨트롤러의 @Controller는 주로 View를 반환하기 위해 사용된다. [ Controller로 View 반환하기 ] 1. Client는 URL 형식으로 웹 서비스에 요청을 보낸다. 2. DispatcherServlet이 요청을 위임할 HandlerMapping을 찾는다. 3. HandlerMapping을 통해 요청을 Controller로 위임한다. 4. Controller는 요청을 처리한 후에 ViewName을 반환한다. 5. DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환한다. [ Controller로 Data 반환하기 ] 그렇다면 view를 반환하는..

저번 포스팅에서 게시글을 작성하는 것을 포스팅 했었습니다. Spring Boot(게시글작성) 헤더바에서 글쓰기 버튼을 누르면 글을 작성할 수 있는 폼으로 이동시켜줘야한다. header.jsp을 보면 글쓰기를 클릭하면 /board/saveForm으로 이동하게 설정되어 있다. 이를 잡아줄 수 있는 컨트롤러를 mwdeveloper.tistory.com 이번시간에는 저번 포스팅에서 작성한 게시글을 메인 페이지에서 볼 수 있게 글목록을 구현하도록 하겠쑵니다. 자 생각을 해보면 우리가 메인페이지로 이동할 때 데이터를 가지고 이동을 해야겠죠~? 왜냐하면 우리가 작성한 글 제목과 내용의 데이터를 가지고 가야 메인페이지(index.jsp)에서 볼 수 있을테니까요. 그러기 위해서 BoradController에서 첫번째 작..

헤더바에서 글쓰기 버튼을 누르면 글을 작성할 수 있는 폼으로 이동시켜줘야한다. header.jsp을 보면 글쓰기를 클릭하면 /board/saveForm으로 이동하게 설정되어 있다. 이를 잡아줄 수 있는 컨트롤러를 하나 만들어야 한다. /board/saveForm으로 이동하는 url을 핸들링해서 "board/saveForm"으로 이동시켜준다. board/saveForm은 실제로 사용자들이 글을 작성할 수 있게끔 폼을 보여줘야하므로, views 폴더 밑에 board라는 폴더를 생성 후 saveForm.jsp를 생성해준다. W3Schools Free Online Web Tutorials W3Schools offers free online tutorials, references and exercises in a..

Spring Security login의 마지막 파트이다. loginForm 에서 /auth/loginProc 의 해당 주소로 이동하게 설정해놨다. 여기서 재밌는점은 UserApiController 에는 /auth/loginProc의 주소를 받는 컨트롤러는 존재하지 않고 /auth/joinProc의 주소만 존재한다. 이유는 뭘까? 그 이유는 바로 Security가 로그인 요청을 가로채게 만들 것이기 때문이다. 해당 설정을 위해 SecurityConfig에서 작업을 실시한다. .loginProcessingUrl() 이 로그인 요청을 가로채고 해당주소로 오는 로그인을 대신해주고 정상적으로 요청이 완료되면 .defaultSuccessUrl()의 해당 주소로 이동하게 된다. 여기서 중요한점은 우리는 loginF..

로그인을 하기에 앞서, 현재 우리의 홈페이지에서 회원가입을 진행하면 폼에 입력된 정보가 암호화 되어 데이터베이스에 저장되는 것 아니라 입력값 그대로 저장된다. 우리는 입력값 그대로를 데이터베이스에 저장하는 것이 아니라 해쉬(Hash)형태로 변환 후 DB에 저장할려고 한다. 시큐리티는 어떤 로직을 가지고 있는지 살펴보면 로그인을 요청한다. 시큐리티가 지켜보고 있다가 파라미터로 전달된 username, password를 가로챈다. 가로챈 파라미터로 로그인 진행이 완료된다. 시큐리티가 가지고 있는 전용 세션에 유저정보를 저장한다. 우리는 세션에 저장되어 있는 유저정보를(IOC)를 DI(의존성주입)을 사용하여 필요할 때 마다 사용한다. 여기서 중요한 점은 시큐리티 세션에는 우리가 만들어놓은 User 오브젝트를 ..

우리는 앞으로 Spring Security에서 인증이 안된 사용자들이 "/auth" 경로를 통해 접근할 수 있도록 설정할 것이다. 예를들어서 JoinForm(회원가입), loginForm(로그인페이지) 들은 인증이 필요하지 않은 곳이기 때문에 "/auth" 경로로 설정하는 것이다. 필요한 모든 곳의 주소를 변경했다면 config라는 패키지를 하나 만들고 패키지속에 SecurityConfig 라는 Class를 생성해준다. SecurityConfig 클래스 속에서 WebSecurityConfigurerAdapter 클래스를 상속(extends)후 HttpSecurity를 가지고 있는 configure() 메소드를 오버라이딩 해준다. 설정파일을 bean으로 등록하기 위해서는(스프링 컨테이너에서 객체를 관리할 ..

시큐리티 로그인을 하기 위해서는 Pom.xml 수정이 필요하다. #1 pom.xml 수정 (dependency 추가) org.springframework.security spring-security-taglibs org.springframework.boot spring-boot-starter-security dependency를 추가하고 서버를 돌리면 메인 페이지로 가려고 하는데, url에 자동으로 /login으로 매핑되어 이상한 로그인 페이지로 이동한다. 이유는 바로, Spring security가 가로채서 이 화면으로 자동으로 가게 만들어놨기 때문(username은 user Password는 콘솔창에 띄워지는 해쉬 Password를 사용하면 원하는 메인페이지로 이동이 가능하다) 이를 통해서 알 수 있..