12월 18일 월 TIL

장숭혁·2023년 12월 19일
0

TIL작성

목록 보기
33/60

@Configuration

  • 이 어노테이션을 붙인 클래스는 스프링 Bean 구성 클래스로 인식한다.
  • 이 어노테이션이 설정된 클래스는 애플리케이션의 구성 요소들을 정의하고 구성하기 위해 사용한다
  1. Bean 정의: @Bean 어노테이션과 함께 메서드를 정의하여 스프링 애플리케이션 컨텍스트에 Bean을 추가할 수 있다. 이러한 Bean들은 다른 클래스에서 주입되거나 사용될 수 있다.
  2. 외부 설정의 로드: @Configuration 클래스는 외부 프로퍼티 파일을 읽거나 다른 설정을 로드하여 애플리케이션의 설정을 구성하는 데 사용될 수 있다.
  3. Bean 간 의존성 설정: Bean들 사이의 의존성을 설정하고, 필요한 Bean을 주입하여 의존성을 관리할 수 있다.

.rememberMe - Remember-me 인증

  • 웹 사이트를 방문하는 사용자가 일정 시간 동안 로그인 상태를 유지할 수 있게 해주는 기능이다.
  • 사용자가 로그인 시 "Remember Me" 옵션을 선택하면, 사용자의 브라우저에 특정한 쿠키가 저장된다.
  • 쿠키는 사용자가 다음 번에 사이트를 방문할 때 사용자를 인식하게 해주며, 이를 통해 사용자는 로그인 과정 없이 바로 사이트를 이용할 수 있다.
  • HttpSecurity의 authorizeRequests() 메서드
    • hasRole() : antMatchers("/admin/").hasRole("ADMIN") 부분은 "/admin/" 패턴에 해당하는 URL에 대해 "ADMIN" 역할을 가진 사용자만 접근할 수 있도록 설정한다
      http
       .authorizeRequests(authorize -> authorize
           .antMatchers("/admin/**").hasRole("ADMIN")
           .anyRequest().authenticated()
       )
    • 자신의 글만 읽는법
      -로그인된 사용자가 자신의 글을 확인하려면, 그 사용자의 ID나 사용자명 등으로 글을 필터링 할 수 있다.
      -서버 측에서 사용자 인증 정보를 확인하고, 해당 사용자가 작성한 글만을 반환하도록 하는 로직을 구현함으로써 가능하다.
      -Spring Security - -- Authentication 객체를 통해 현재 로그인된 사용자의 정보를 얻을 수 있다.
      -uthentication 객체는 SecurityContextHolder를 통해 접근할 수 있으며, 이 객체를 통해 로그인된 사용자의 세부 정보를 얻을 수 있다.
       import org.springframework.security.core.context.SecurityContextHolder;
      import org.springframework.security.core.Authentication; 
      .
      Authentication auth = SecurityContextHolder.getContext().getAuthentication();
      String username = auth.getName(); // 현재 로그인된 사용자의 이름을 얻습니다.
      .
      // 이제 username을 이용하여 해당 사용자가 작성한 글만을 찾아서 반환하는 로직을 구현합니다.
      List<Post> posts = postRepository.findByUsername(username);
profile
코딩 기록

0개의 댓글

관련 채용 정보