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()) ); } }