본문 바로가기

Spring47

[Spring Security] 세션을 JSP로 넘기는 방법 2가지 1.첫번째방법 @GetMapping("/user/{id}/update") public String update(@PathVariable int id, @AuthenticationPrincipal PrincipalDetails principalDetails, Model model){ System.out.println("세션 정보 : " + principalDetails.getUser()); model.addAttribute("principal", principalDetails.getUser()); return "user/update"; } } 매개변수에 model 선언하고 세션으로 받아온 PrincipalDetails 를 model.addAtribute 에 담는다, 담아서 jsp 가서 EL태그 사용하기 2.. 2023. 1. 7.
[Spring Security] 스프링 시큐리티의 로그인 세션의 위치, @AuthenticationPrincipal 예제 원래 세션은 Authehtication 객체에 최종적으로 저장된다. 만약 내가 username을 찾고싶다면 원래는 HttpSession 선언하고 SecurityContextHolder 안에 Authentication 객체에서 username을 찾아와야 하는데 이건 너무 복잡한 과정이다. ( 밑에 어노테이션 미사용코드 참고) 그래서 탄생한 어노테이션이 @AuthenticationPrincipal 이다. 이걸로 Authentication 객체에 바로 접근 가능한데 @GetMapping("/user/{id}/update") public String update(@PathVariable int id, @AuthenticationPrincipal PrincipalDetails principalDetails){ /.. 2023. 1. 7.
스프링 시큐리티에서의 로그인 - 시큐리티한테 위임 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/", "/user/**", "/image/**", "/subscribe/**", "/comment/**").authenticated()// 인증필요를 걸어둔것 .anyRequest().permitAll() //나머지 허용 .and() .formLogin() .loginPage("/auth/signin") // 이건 get요청 .loginProcessingUrl("/auth/signin") //이건 post(로그인이니까) -> 스프링 .. 2023. 1. 7.