Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다.
build.gradle
**implementation group: 'org.springframework.security', name: 'spring-security-
implementation group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity5'**
security는 Thymeleaf를 이용하면 쉽게 적용할 수 있다.
xml name space에 다음과 같이 추가하여 사용한다.
.html
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
MemberEntity
다음 → 이메일, 비밀번호, 권한설정은 security를 하기 위해서는 반드시 필요하다.
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "sec_member_tb_0803")
public class MemberEntity extends BaseEntity{
// 이메일, 비밀번호, 권한설정 (sercutiry필수)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
private Long id;
// 이메일은 반드시 유니크, 낫널 설정
@Column(nullable = false, unique = true)
private String email; // 이메일: user -> username으로 대체
@Column(nullable = false)
private String password; //비밀번호 -> 비밀번호 암호화는 필수이다.
@Enumerated(EnumType.STRING)
private Role role; //권한설정
}
contrant > role
권한설정은 enum 클래스로 한다.
public enum Role {
ADMIN, MANAGER, MEMBER
}
이제 실행해보자.
다음과 같이 뜬다면 성공이다.
이제 다른 페이지로 이동할 때 로그인을 해야 하는데
초기 아이디는 user이고 password는 콘솔창에서 주어진다.
security 그래들을 추가하면 나타나는 로그인 페이지 확인
그래들에 의존성을 주입한 뒤 실행해보면 다음과 같은 화면을 볼 수 있다. 이는 Security에서 제공하는 로그인 페이지다.
로그인페이지
로그아웃페이지
로그아웃을 위해서는 http://localhost:8095/logout 하면 된다.
아이디: user / 비밀번호: 콘솔창에서 확인 가능
콘솔창에서 비밀번호 복사
로그인 페이지에서 아이디와 비밀번호를 입력하면 비로소 요청한 페이지로 이동할 수 있다.
로그인을 하면 비로소 해당페이지로 이동된다.
너무 도움됐어요!!💛💛💛💛💛