본문 바로가기

Spring Framework13

Spring 실시간 알림(webSocket) # 블로그 예제는 단일 서버에서 통신한다는 전제로 구현된 간단한 예제입니다. 조금 더 구체적인 예제와 설계를 참고하고 싶다면 '가상 면접 사례로 배우는 대규모 시스템 설계 기초' 의 12장 채팅시스템 설계 부분을 참고하시면 많은 도움이 될겁니다. 구현 목록 1)로그인 되어 있는 사람의 글에 누군가 로그인 하고있는 회원이 좋아요 , 팔로우 , 스크랩을 했을때 글의 주인에게 실시간으로 알림이 가는것. 2)만약 로그인이 되어 있지 않다면 그 내용이 저장이 되어 다음에 로그인시 내용을 볼수있게 만들어라! 모든페이지에서 알림을 받기위해서 websocket 연결은 전역으로 구현했습니다. (index.jsp) 그리고 서버에서는 로그인 회원의 이메일별로 SocketSession을 관리한다. 환경설정 pom.xml or.. 2020. 1. 26.
Spring Security - LoginFailureHandler 로그인이 실패 할 수 있는 경우는 많이 존재한다. 1. 로그인 비밀번호가 틀렸다. 2.계정이 존재하지 않는다. 3.이메일 인증을 하지 않았다. 4.누군가 내 아이디로 로그인을 하고있다. (중복로그인) 이러한 4가지의 경우를 모두 처리를 해줘야 한다. 로그인 성공보다 더욱 많은 부가 작업이 이루어져야한다! 이러한 부가 작업을 사람들은 커스터마이징 한다고 한다! LoginFailureHandler.java @Data public class LoginFailureHandler implements AuthenticationFailureHandler { private String loginemailname; private String loginpwdname; private String errormsgname; p.. 2020. 1. 6.
Spring Security - LoginSucessHandler loginSuccessHandler에 접근하면 몇가지 일을 해줘야한다! 1. 로그인에 성공 후 이동할 URL을 지정하여 지정한 URL로 이동해야 한다. 2. 로그인에 성공했을 때 이동할 곳은 다 다르다. 로그인 버튼을 눌러 직접 로그인화면으로 갔다면 성공 후엔 메인 화면으로 가야 할 것이고, 권한이 필요한 곳에 접근하여 강제로 로그인 화면으로 이동했다면 성공 후엔 그 권한이 필요했던 곳으로 가야한다. 예를 들어서, 게시판에 접근하려고 하는데 접근권한이 없어서 로그인페이지로 이동을 하게되고 로그인후에는 내가 클릭했었던 게시물을 기억하고 있다가 로그인을 성공하는 순간 그 게시물로 이동하게 된다. 여러 홈페이지를 유심히 봤던 사람이라면 이러한 동작을 하는걸 본적 있을 것 이다! 3.로그인 실패 에러 세션 지우.. 2020. 1. 6.
Spring Security -인증 및 권한부여 UserDetailsService 인터페이스는 DB에서 유저 정보를 가져오는 역할을 한다. 해당 인터페이스의 메소드에서 DB의 유저 정보를 가져와서 AuthenticationProvider 인터페이스로 유저 정보를 리턴 - 인증 및 권한부여 절차 UserDetails Spring Security에서 사용자의 정보를 담는 인터페이스는 UserDetails 인터페이스이다. 우리가 이 인터페이스를 구현하게 되면 Spring Security에서 구현한 클래스를 사용자 정보로 인식하고 인증 작업을 한다. 쉽게 말하면 UserDetails 인터페이스는 VO 역할을 한다고 보면 된다. @SuppressWarnings("serial") @Data @Component public class MemberDTO implem.. 2020. 1. 6.