1. 자동로그인
유저 테이블을 만들고...
자동 로그인을 하기 위해서는 위의 persistent_login테이블을 완전히 저것과 똑같이 만들어야 한다.
자동 로그인은 rememberMe()를 사용한다. 토큰을 발급하고, 토큰의 유효기간 역시 설정할 수 있다.
자동로그인 체크박스를 만들고 name 요소에 remember-me 라고 설정.. 반드시 이 이름으로 설정해야 한다.
자동 로그인을 하면 테이블에 자동 로그인된 아이디를 발견할 수 있다. 만약 로그아웃을 할 시, 테이블에 데이터가 사라진다.
2. 암호화 해시 함수
패스워드 엔코더 구현체인 NoOpPasswordEncoder는 암호를 인코딩하지 않고 일반 텍스트로 유지한다. 암호를 해시하지 않기 때문에 보안관련해서 취약하므로 실무에서는 절대 사용해선 안된다. 그래서 BCryptPasswordEncoder를 사용하기로 했다. 이것은 블로피시 암호에 기반을 둔 암호화 해시 함수이고, 패스워드 해싱 시 내부적으로 랜덤한 salt값을 생성하여 매번 다른 해싱 결과를 출력한다.
tom으로 회원가입을 했을 시, 패스워드가 암호화 된것 확인할 수 있다. 만약 또 다른 계정으로 회원가입을 하고 패스워드를 똑같이 123으로 설정해 놓으면, tom의 password와 다른 값으로 암호화 된걸 확인할 수 있다.
3. 기타
인증 된 경우에만 태그를 볼 수 있게 하는 방법이 있다. 주로 sec:authorize="isAuthenticated()" 구문을 사용한다. if문을 이용하여 특정 유저만 태그를 볼 수 있게끔 하는 방법 역시 존재한다. 게시물1에서 계정명이 tom일 경우 삭제버튼을 볼 수 있게 해놓았고, 현재 james 계정으로 로그인을 한 상태이다. tom 계정이 아니기 때문에 이 설정을 한 삭제 버튼을 볼 수 없는 것이다.
로그아웃을 하고 본 경우, 인증을 거쳐야만 볼 수 있는 태그들을 볼 수 없다.
'Spring' 카테고리의 다른 글
[Spring] DAO, Util 로 DB에 값 추가하기 (0) | 2024.02.16 |
---|---|
[Spring] JsonObject 와 FormData (0) | 2024.02.16 |
[Spring Security] 스프링 시큐리티 기본 구성 재정의 (0) | 2023.08.23 |
[Spring Security] 스프링 시큐리티 (0) | 2023.08.23 |
[Spring DB] 게시판 만들기 (5) : 댓글 구현 (0) | 2023.08.22 |