@AllArgsConstructor
클래스의 모든 필드 값을 파라미터로 받는 생성자
@AllArgsConstructor(access = PACKAGE)
같은 패키지의 클래스에서 생성자에 접근 가능
@FieldDefaults(level = AccessLevel.Private, makeFinal = true)
클래스 내부의 필드마다 접근 제어자(private, public, protect)와 final 키워드를 자동으로 추가한다.
- Spring Security
UserDetails
Spring Security에서 사용자의 정보를 담는 인터페이스.
사용자 정보를 불러오기 위해서 구현해야 하는 기본 오버라이드 메서드들
getAuthorities() - 계정 권한 목록
getPassword() - 계정의 비밀번호
getUsername() - 계정의 고유값
isAccountNonExpired() - 계정의 만료 여부 - true, 만료 안됨
isAccountNonLocked() - 계정의 잠김 여부 - true, 잠기지 않음
isCredentialsNonExpired() - 비밀번호 만료 여부 - true, 만료 안됨
isEnabled() - 계정 활성화 여부 - true, 활성화됨
- 스프링 시큐리티의 의존성이 주입되면, 자동으로 기본 로그인 화면이 추가된다.
아이디: user
비밀번호: 콘솔로그, Using generated security password 값
- 스프링에서는 Web기반의 시큐리티, Method기반의 시큐리티 기능을 제공한다.
메소드 기반은 메소드 별로 권한을 체크하는데, 웹 기반과 다르게 필터가 아닌 컨트롤러 단에서 권한을 처리하는 기능이다.
웹 시큐리티에서 URL, Token 유무로 인증을 하고,
메소드 시큐리티에서는 권한에 따라 인가를 하는 방법이다.
- 스프링 시큐리티 에서의 인증, 권한
인증: 나라는 주체가 맞는지 확인하는 것(신분 인증?)
권한: 나라는 주체가 맞다면, 서버 자원에 대한 권한이 있는지 확인하는 것.
- AbstractAuthenticationonProcessingFilter
브라우저 기반 HTTP 기반 인증 요청
http 기반 인증, http browser base 인증, 브라우저 인증?
- AbstractUserDetailsAuthenticationProvider
신분 인증
@EnableWebSecurity
메소드 기반 시큐리티
Spring AOP proxy를 사용해 구현된 방법이다.
@EnableGlobalMethodSecurity -> @EnableMethodSecurity
시큐리티 기본 로그인 화면 제거 방법
1. 메인 클래스에 @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) 추가하여 제외시키는 방법
2. SecurityConfig 파일 만드는 방법.
@PropertySource(value = {xx.properties}, ignoreResourceNotFound = true)
properties 파일의 자원 설정
ignoreResourceNotFound - 자원이 없다면 무시.
@ConfigurationProperties(prefix = "xx.yy")
properties, yml 파일 자원의 프로퍼티명으로 클래스 내부 필드와 바인딩한다.
@EqualsAndHashcode(callSuper = false)
자바 bean에서 동등성 비교를 위해서 equals와 hashcode 메소드를 오버라이딩해서 사용하는데,
해당 어노테이션을 사용하면 자동으로 이 메소드를 생성할 수 있다.
callSuper 설정시, 부모 클래스 필드 값들도 동일한지 체크, false(default)일 경우 자신 클래스의 필드 값만 고려한다.
컴포넌트스캔시, 서브모듈들의 로드를 할려면, 메인서브모듈에 implements 해줘야 된다.
'IT > Analysis' 카테고리의 다른 글
20240321 - Vue 프로젝트 생성하기 (0) | 2024.03.21 |
---|