package com.sandu.ximon.admin.service;
|
|
import com.sandu.ximon.admin.dto.AdminJwtUser;
|
import com.sandu.ximon.dao.domain.Admin;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.stereotype.Service;
|
|
|
/**
|
* @author hupeng
|
* @date 2018-11-22
|
*/
|
@Slf4j
|
@Service("adminDetailsService")
|
public class AdminDetailsServiceImpl implements UserDetailsService {
|
|
private final AdminService adminService;
|
|
private final RoleService roleService;
|
|
public AdminDetailsServiceImpl(AdminService userService, RoleService roleService) {
|
this.adminService = userService;
|
this.roleService = roleService;
|
}
|
|
@Override
|
public UserDetails loadUserByUsername(String username) {
|
log.info("loadUserByUsername == {}",username);
|
Admin admin = adminService.findByUserName(username);
|
if (admin == null) {
|
throw new IllegalArgumentException("账号不存在");
|
} else {
|
return createJwtUser(admin);
|
}
|
}
|
|
private UserDetails createJwtUser(Admin admin) {
|
return new AdminJwtUser(
|
admin,
|
roleService.mapToGrantedAuthorities(admin.getId())
|
);
|
}
|
}
|