Spring Security 회원가입기능

최고요·2023년 4월 21일
2

Spring Security V1 

목록 보기
2/9
post-thumbnail

회원가입기능


이전에 설정한 내용대로 인증받지 않은 사용자가 요청한 index.html입니다

인증받지 않은 사용자가 /user/ , /manager/ , /admin/** 요청을 하게되면 아래와같이 loginForm.html을 반환합니다.

아직 회원이 아니신가요? 하이퍼 링크를 클릭하게 되면 joinForm.html을 반환하여 회원가입 페이지를 사용자에게 보이도록 설정했습니다.



UserEntity


@Entity 어노테이션을 사용하여 데이터베이스의 테이블과 매핑되는 엔티티임을 나타냅니다.
@Id속성은 테이블의 PK값을 의미하며
@GeneratedValue(strategy = GenerationType.IDENTITY) 어노테이션은
엔티티의 기본키 PK값을 생성하는 전략입니다
strategy = GenerationType.IDENTITY 설정은 auto-increment 와 같습니다.



joinForm.html


form태그 안에 회원가입에 필요한 회원이름, 이메일 , 비밀번호를 input으로 받습니다.
여기서 name속성은 userEntity의 컬럼명과 일치해야합니다.


indexController의 로그인 메서드


회원가입 버튼을 누르면 입력한 값이 컨트롤러의 post매핑으로 매서드가 실행됩니다
user의 ROLE은 회원가입당시 입력하지 않았기 때문에 매서드에서 setter를 이용하여 ROLE_USER로 지정해줍니다

여기서 userRepository의 save요청을 바로 저장하게되면 DB에는 정상적으로 저장되겠지만
로그인시 오류가 발생하고 보안에 취약하다는 단점이있습니다.

그래서 DB에 저장하기 전 비밀번호를 암호화하여 save요청을하고 완료가되면
사용자에게 로그인 폼을 보여줍니다.


DB에 비밀번호가 암호화되어 저장


id값은 DB에 저장되면서 자동으로 값이 증감되어 저장되고
email과 username은 입력받은 값 그대로 저장되지만
password는 암호화되어 저장된 모습입니다

role은 따로 업데이트 해주지 않으면 기본적으로 ROLE_USER 기본으로 설정되어 저장됩니다.

profile
i'm best

0개의 댓글