[Spring] Spring Security로 사용자 정보 찾기

2017. 11. 9. 15:29
반응형

[Spring] Spring Security로 사용자 정보 찾기



보통 session.getAtrributy()를  사용하여 세션을 받던 도중 Spring Security 를 사용하여 유저 정보를 받아올 경우가 생겼다


그 경우 당황하지 말고 다음과 같은 방법으로 사용자 정보를 받아올수있다. 


▼Controller 메서드인자 받기

1
2
3
4
5
6
7
 
@RequestMapping("/")
    public String index(Principal principal) {
        System.out.println(principal.getName());
        return "index";
    }
 

cs





▼SpringContextHolder 사용

1
2
3
4
 
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
System.out.println(authentication.getName());
 
cs




▼User 클래스로 형변환 하여 사용
1
2
3
4
 
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
System.out.println(user.getUsername());
 
cs


User 클래스를 사용하여 형변환을 진행할때 필자의 경우는 정보를 주고 받는 유저의 클래스 명을 USER로 했기때문에

초기에 해당 형변환이 불가하였다. 이경우 에는 주의할점이 있는데 바로

org.springframework.security.core.userdetails.User 를 사용하여야 Security의 형변환 정보를

올바르게 진행할수있다.


반응형

BELATED ARTICLES

more