어노테이션 | 설명 |
---|---|
@NotEmpty | NULL 체크 및 문자열의 겨우 길이가 0인지 검사 |
@NotBlank | NULL 체크 및 문자열의 겨우 길이가 0인지 및 빈 문자열(" ")인지 검사 |
@Length(min=,max=) | 최소, 최대 길이 검사 |
@Null | 값이 NULL인지 검사 |
UserDetailsService 인터페이스는 데이터베이스에서 회원 정보를 가져오는 역할을 담당
loadUserByUsername() 메소드가 존재하며, 로그인할 유저의 email을 파라미터로 전달받고 UserDetail을 구현하고 있는 User 객체를 반환해준다. User객체를 생성하기 위해서 생성자로 회원의 이메일, 비민번호, role을 파라미터로 넘겨준다.
Builder Pattern은 복잡한 객체의 생성 과정 및 표현 방법을 분리해 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴을 뜻한다.
두가지 패턴이 존재하는데 하나는 생성자 패턴이고 또 다른 하나는 빌더 패턴이다.
여기를 참고해보면 도움이 될 듯 하다.
36번째 줄 : 시큐리티 처리에 HttpServletRequest를 이용한다는 것을 의미
37번째 줄 : permitAll()을 통해 모든 사용자가 인증(로그인)없이 해당 경로에 접근할 수 있도록 설정 -> 메인 페이지, 회원 관련 URL, 뒤에서 만들 상품 상세 페이지, 상품 이미지를 불러오는 경로가 이에 해당
38번째 줄 : /admin으로 시작하는 경로는 해당 계정이 ADMIN Role일 경우에만 접근 가능하도록 설정
39번째 줄 : 위에서 설정해준 경로를 제외한 나머지 경로들은 모두 인증을 요구하도록 설정
43번째 줄 : 인증되지 않은 사용자가 리소스에 접근하였을 때 수행되는 핸들러를 등록
48번째 줄 : static 디렉터리의 하위 파일은 인증을 무시하도록 설정