Spring

현재 Intellij에 Spring Boot를 사용하여 Gradle 환경에서 빌드를 할 경우 아래와 같은 오류가 발생한다. 현재 환경은 Spring Boot 2.4.1 버전 JDK 17 버전 gradle-8.2.1 버전 이다. 프로젝트를 생성하자 마자 오류가 발생한다. 해결방법 gradle/wrapper/gradle-wrapper.properties 파일에서 버전은 다운그레이드 해준다. distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip 8.3.1 -> 7.3.1 왜 그런지 모르나 Spring Boot 버전과 Gradle 버전에서의 연동 문제인듯 하다...아닌가
UserDetails를 구현한 User 객체와 UserDetailsService와 UserDetails를 사용하여 로그인 구동 UserDetails로 구현한 User객체 @Data @AllArgsConstructor @NoArgsConstructor @Builder @Entity @Table(name="user") public class UserEntity implements UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long userId; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name="user_id", fore..
1. BasicAuthenticationFilter 기본적인 로그인 페이지(formLogin)을 사용 할 수 없을 때 사용 SPA(Single Page Application) 페이지 같은 뷰를 프론트 단에서 책임지는 방식의 브라우저 기반의 모바일 앱에 사용 http 헤더값으로 전달 되기 때문에 httpBasic()를 허용하여 BasicAuthenticationFilter 사용, 헤더 값이 base64인코딩 되어 전달 되기 때문에 보안에 매우 취약하여 반드시 https 프로토콜 사용을 권장. 최초의 로그인 시에만 인증을 처리하고, 이후에 session에 의존 에러 시 401인 UnAuthorized 발생 @Configuration public class MobSecurityConfig extends Web..
1. Form Login DefaultLoginPageGeneratingFilter 기본 로그인 페이지 및 폼 제공 Get방식의 /login 처리 OAuth2 / OpenID / Saml2 로그인 같이 사용 가능 UsernamePasswordAuthenticationFilter Post방식의 /login 처리 http.processingUrl()을 통해 주소를 변경 가능 filterProcessingUrl() : 로그인을 처리 Url dafaultSuccessUrl() : alwaysUse=false 옵션 설정하여 로그인이 성공했음에도 불구하고 다른 페이지를 사용시 적용되지 않도록 하기위한 옵션 successHandler() : 성공시 핸들러 동작 failureUrl() : 실패시 Url failureH..
1. Authentication 구조 인증 토큰(Authentication)을 제공하는 필터들 UsernamePasswordAuthenticationFilter : 폼 로그인 -> UsernamePasswordAuthenticationToken RememberMeAuthenticationFilter : remember-me 쿠키 로그인 -> RememberMeAuthenticationToken AnonymousAuthenticationFilter : 로그인하지 않았다는 것을 인증함 -> AnonymousAuthenticationToken SecurityContextPersistenceFilter : 기존 로그인을 유지함(기본적으로 session 을 이용함) BearerTokenAuthenticationF..
1) 웹 애플리케이션 서버의 Filter 웹 애플리케이션 서버, 곧 서블릿 컨테이너의 Filter는 디스패처 서블릿으로 가기전에 먼저 적용 여러 개의 Filter들이 연결되어 있어 FilterChain이라도 불림 모든 Request는 Filter들을 거쳐 서블릿에 도착 2) Spring Security의 Filter DelegatingFilterProxy라는 필터를 만들어 FilterChain 사이에 넣어 SpringSecurity Filter를 거치도록 하고, Proxy 아래 SecurityFilterChain 그룹을 적용하여 특정 Url을 설정하여 다르게 동작하도록 한다. WevSecurityConfigurerAdapter을 상속받은 Config 사용자 클래스로 Config(HttpSecurity h..
1 ) Spring Security 정의 Spring 기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 인증(Authentication) 과 권한(Authorization) 에 대한 부분을 Filter의 흐름에 따라 처리를 하고 있다. 2) 인증(Authentication) 과 권한(Authorization) 인증 사이트에 접속하려고 할 때의 확인 절차 Session과 Token(Sessionless)을 통한 인증 절차 SNS 로그인에 인증 위임 인가 or 권한 사용자의 권한 설정 절차 특정 페이지 및 리소스에 접근 가능 판단 @Secure, @PrePostAuthorize 어노테이션으로 권한 체크 AOP를 이용하여 권한 체크 * 인증 절차를 거친 후 권한절차를 진행하게 된다. * 요즘에는 아이..
JPQL(Java Persistence Query Language) : Entity 객체를 조회하는 쿼리 QueryDSL : 쿼리 메소드 : 쿼리메소드의 경우 조건이 많아지게 되면 메소드의 이름이 길어지는 단점이 있다. public interface BookRepository extends JpaRepository { List findByCategoryIsNullAndNameEqualsAndCreatedAtGreaterThanEqualAndUpdatedAtGreaterThanEqual(String name, LocalDateTime createdAt, LocalDateTime updatedAt); } !!! @Query 어노테이션을 사용하여 메소드 명을 줄이고 가독성을 높인다. @Query 어노테이션 사..
defxyj
'Spring' 카테고리의 글 목록 (2 Page)