230804 day84 개념 정리

Jin·2023년 9월 2일
0

codenotion

목록 보기
75/90
post-thumbnail

AccessDeniedHandler 인터페이스 구현 
(접근 제한이 된 다양한 처리를 위한 인터페이스)

접근 제한되었을 때 쿠키나 세션에 특정한 작업을 하거나 
HttpServletResponse에 특정한 헤더를 추가하는 경우는 
직접 구현한 방식을 사용함 


패키지 생성
org.green.security 패키지 

- CustomAccessDeniedHandler 클래스 생성 
AccessDeniedHandler 인터페이스 상속 


커스텀 로그인 페이지 
- login-page속성에 특정한 url을 지정하면 된다.

ex>
<security:form-login /><security:form-login login-page="/customLogin" /> 이걸로 바꿈

- Controller의 url에 해당하는 메소드를 추가 (GetMapping)
에러 메세지, 로그아웃 메세지를 파라미터 통해서 사용 가능  

- 해당 jsp 페이지를 생성


로그인 성공 시 특정한 동작을 하도록 제어하고 싶은 경우 

AuthenticationSuccessHandler 인터페이스 구현 후 
권한을 체크해서 해당 권한을 가졌으면 해당 url로 이동하게 설정

- CustomLoginSuccessHandler 클래스 생성 
AuthenticationSuccessHandler 인터페이스 상속


인증/권한을 위한 테이블 설계

create table tbl_member(
	userid varchar2(50) not null primary key,
	userpw varchar2(100) not null,
	username varchar2(100) not null,
	regidate date default sysdate,
	updatedate date default sysdate
)

create table tbl_member_auth(
	userid varchar2(50) not null,
	auth varchar2(50) not null,
	constraint fk_member_auth foreign key(userid) 
	references tbl_member(userid)
)



BCriptPasswordEncoder 클래스를 이용한 패스워드 보호
bcripty 패스워드를 저장하는 용도로 설계됨

해시함수로 특정 문자열을 암호화하고
체크하는 쪽에서 암호화된 패스워드가 가능한 것인지 확인만 하고
다시 원문으로 되돌리기는 불가능 
profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글