修改换token时获取权限问题
This commit is contained in:
@@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
|
|||||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.MessageUtils;
|
import com.ruoyi.common.utils.MessageUtils;
|
||||||
import com.ruoyi.common.utils.encrypt.EncryptUtil;
|
import com.ruoyi.common.utils.encrypt.EncryptUtil;
|
||||||
import com.ruoyi.common.utils.ip.IpUtils;
|
import com.ruoyi.common.utils.ip.IpUtils;
|
||||||
@@ -29,6 +30,10 @@ import org.apache.http.impl.client.HttpClients;
|
|||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@@ -62,6 +67,9 @@ public class SsoService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysUserRoleMapper sysUserRoleMapper;
|
private SysUserRoleMapper sysUserRoleMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserDetailsService userDetailsService;
|
||||||
|
|
||||||
//一体机,pc个人,企业
|
//一体机,pc个人,企业
|
||||||
@Value("${lc_web_auth.appId}")
|
@Value("${lc_web_auth.appId}")
|
||||||
String webAppId;
|
String webAppId;
|
||||||
@@ -372,14 +380,27 @@ public class SsoService {
|
|||||||
|
|
||||||
//模拟登录sysuser
|
//模拟登录sysuser
|
||||||
public String loginSysUser(SysUser sysUser, String userName){
|
public String loginSysUser(SysUser sysUser, String userName){
|
||||||
LoginUser loginUser = new LoginUser();
|
Authentication authentication = authenticateLocalUser(userName);
|
||||||
loginUser.setUserId(sysUser.getUserId());
|
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
|
||||||
loginUser.setUser(sysUser);
|
|
||||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||||
// 生成token
|
// 生成token
|
||||||
return tokenService.createTokenHourTwo(loginUser);
|
return tokenService.createTokenHourTwo(loginUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户权限
|
||||||
|
* @param localUsername
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Authentication authenticateLocalUser(String localUsername) {
|
||||||
|
try {
|
||||||
|
UserDetails userDetails = userDetailsService.loadUserByUsername(localUsername);
|
||||||
|
return new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServiceException("本地用户认证失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
private JSONObject getUserInfo(String url, String token, String params) {
|
private JSONObject getUserInfo(String url, String token, String params) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user