Search
📙

#블로그만들기_11 #게시글 쓰기 페이지 인증 체크

현재 상태

로그인을 하지 않았는데도, 해당 페이지에 접근이 가능한 상황 로그인을 하지 않고, 해당 페이지에 접근하면 로그인 페이지로 리다이렉트할 예정이다.

게시글 쓰기 화면 인증 체크 알고리즘

/board/saveForm 요청 Get이 온다. session영역에 sessionUser 키값에 user 객체 있는지 체크 값이 null이면 로그인 페이지로 리다이렉션 값이 null이 아니면, /board/saveForm 으로 이동
@RequiredArgsConstructor @Controller public class BoardController { private final BoardRepository boardRepository; private final HttpSession session; // 세션 생성자 주입 // /board/saveForm 요청(Get)이 온다 @GetMapping("/board/saveForm") public String saveForm() { // 세션 영역에 sessionUser 키값에 user 객체가 있는지 비교 User user = (User)session.getAttribute("sessionUser"); // 값이 null이면 로그인 페이지로 리다이렉션 // 값이 null이 아니면 /board/saveForm 로 이동 if (user == null ){ return "redirect:/loginForm"; } return "board/saveForm"; }
Java
복사

Session에 접근하는 방법 더 알아보기

생성자를 통해서 IoC 객체를 주입 받는 방법
public class BoardController { // HttpSession을 필드값으로 선언! private final HttpSession session; // BoadController 생성자의 매개변수로 Httpsession 주입 public BoardController(HttpSession session) { this.session = session; }
Java
복사
HttpServletRquest객체로 접근하는 방법
public String temp (HttpServeletRqueset request) { // HttpServeletRequest객체의 getSession 메소드를 사용한다. HttpSession session = request.getSession(); }
Java
복사

해쉬맵 더 알아보기

해쉬맵에 매핑할 때, 키값=밸류를 put하면된다. 타입이 제네릭과 Object로 받기 때문에 밸류는 어떤 값이든 받을 수 있다. 다만 꺼내 쓸 때 다운캐스팅하여서 사용하여야 된다.
HashMap<String, Object> map = new HashMap<>(); // 해쉬맵에 매핑할 때, 키값=밸류를 put하면된다. // 타입이 제네릭과 Object로 받기 때문에 밸류는 어떤 값이든 받을 수 있다. map.put("sessionUser", "안녕"); map.put("name", 1.0); // 다만 꺼내 쓸 때 다운캐스팅하여서 사용하여야 된다. String sessionUser = (String) map.get("sessionUser"); Double name = (Double) map.get("name");
Java
복사