스프링 시큐리티 개요
2019. 8. 3. 18:23ㆍ[정리] 기능별 개념 정리/Security + OAuth
웹 보안의 3요소
1. 인증
2. 권한 부여
3. 잘못된 접근에 대한 화면 처리
스프링 시큐리티 : 위의 보안과 관련된 개발자가 전부 작업해야 하는 과정을 자동화해준다.
- 사용권한 관리
- 비밀번호 암호화 (BCrypt : salt 가 적용되서 같은 암호여도 다른 해시로 암호화된다.)
- 회원가입 처리
- 로그인
- 로그아웃
앞선 포스팅과 겹치는 내용인 코드는 생략
public class UserDeniedHandler implements AccessDeniedHandler {
@override
public void handle(HttpServletRequest req, HttpSerlvetResponse res, AccessDeniedException exp) throws IOException, SevletException{
req.setAttribute("errMsg", "Only admin access this page.");
req.getRequestDispatcher("WEB-INF/view/user/denied.jsp").forward(req, res);
}
}
관리자 기능에 일반 사용자가 접근할 때 페이지를 포워딩 시킨다.
public class UserLoginFailureHandler implements AuthenticationFailureHandler {
@Override
public void onAuthenticationFailure((HttpServletRequest req, HttpSerlvetResponse res, AuthenticationException exp) throws IOException, SevletException{
req.setAttribute("errMsg", "ID, Password not correct.");
req.getRequestDispatcher("WEB-INF/view/user/login.jsp").forward(req, res);
}
}
로그인이 실패했을 때 실행된다.
public class UserLoginSuccessHandler implments Authentication SuccessHandler{
@Override
public void onAuthenticationSuccess(HttpServletRequest req, HttpSerlvetResponse res, Authentication auth) throws IOException, SevletException{
req.setAttribute("msg", auth.getName() + " welcome");
req.getRequestDispatcher("/").forward(req, res);
}
}
로그인이 성공 했을 때 실행된다.
CSRF 공격을 막기위해 스프링 시큐리티는 아래 html 태그가 반드시 필요하다
<input type="hidden" name="${csrf.parameterName}" value="${_csrf.token}">
'[정리] 기능별 개념 정리 > Security + OAuth' 카테고리의 다른 글
OAuth 그림 요약 (0) | 2019.08.23 |
---|---|
스프링 시큐리티 주요 인터페이스 (0) | 2019.08.03 |
Security 기초 (2) (0) | 2019.07.13 |
Security 기초 (1) (0) | 2019.07.13 |
Security OAuth2 강의 정리 (0) | 2019.07.13 |