package com.sandu.ximon.admin.service;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import com.sandu.ximon.admin.dto.AdminJwtUser;
|
import com.sandu.ximon.admin.dto.CustomerJwtUser;
|
import com.sandu.ximon.dao.domain.Client;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.stereotype.Service;
|
|
import java.util.stream.Collectors;
|
|
|
/**
|
* @author hupeng
|
* @date 2018-11-22
|
*/
|
@Slf4j
|
@Service("customerDetailsService")
|
public class CustomerDetailsServiceImpl implements UserDetailsService {
|
|
private final ClientService adminService;
|
|
|
public CustomerDetailsServiceImpl(ClientService userService) {
|
this.adminService = userService;
|
}
|
|
@Override
|
public UserDetails loadUserByUsername(String username) {
|
log.info("loadUserByUsername CustomerDetailsServiceImpl == {}",username);
|
Client admin = adminService.findByPhone(username);
|
if (admin == null) {
|
throw new IllegalArgumentException("账号不存在");
|
} else {
|
return createJwtUser(admin);
|
}
|
}
|
|
private UserDetails createJwtUser(Client admin) {
|
return new CustomerJwtUser(
|
admin,
|
CollectionUtil.newHashSet("c").stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList())
|
);
|
}
|
}
|