오늘 한일
- Spring Security
-
기존에 만든 로그인, 회원 가입에 Spring Security 적용
- 기존의 member를 Spring Security의 User클래스를 상속한 클래스의 필드로 만듬
public class SecurityMember extends User{ private Member member; public SecurityMember(Member member) { //email로 로그인 super(member.getEmail(), member.getPassword(), makeGrantedAuthority(member.getRoles())); this.member = member; }
-
UserDetailsservice 구현체
@Service("securityMemberService") public class SecurityMemberService implements UserDetailsService{ @Resource(name="memberRepository") private MemberRepository memberRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { ..... return new SecurityMember(member); }
-
custom UserDetailsService 등록
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{ auth.userDetailsService(securityMemberService).passwordEncoder(passwordEncoder()); }
-
Authentication authentication
를 통해 로그인 한 사용자를 받아옴@GetMapping("/myboards") public String board(Authentication authentication, Model model) { model.addAttribute("boards", memberService.getBoardsByEmail(authentication.getName())); return "/boards"; }
- 기존의 member를 Spring Security의 User클래스를 상속한 클래스의 필드로 만듬
- 채용 중인 회사 찾아보기
오늘 느낀점
-
역시 구현 해둔 코드들에 Spring Security를 적용하여 리팩토링 하려고하니까 쉽지 않았다. 그래서 새로 레파지토리를 만들어서 학습한 내용대로 구현을 하고서 성공 하는 것을 본다음 기존 프로젝트에 적용을 해봤다.
이미 사용 하고 있던
Interceptors
나 기존의 로그인 페이지는 AJAX로 데이터를 주고 받다보니 Security와는 조금 다른 부분이 있어 헤매긴 했지만 적용 완료 됐다. 조금씩 고쳐야 할 부분들도 있지만 가장 중요한 건@LoginUser
로 로그인 안된 사람이 접근 불가능 하던 부분과 테스트 코드들을 고쳐야 겠다.
내일 할일
-
trello 구현하기
- 기존의
@LoginUser
제거, 테스트 코드 수정, Spring Security에 대한 리팩토링
- 기존의
-
자소서 작성