Commit 9cd0439a authored by jiatao's avatar jiatao

提交统一身份认证路由修改

logback配置更新
parent 618c109d
package com.ruoyi.cas; package com.ruoyi.cas;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysRole;
...@@ -9,9 +10,14 @@ import com.ruoyi.common.core.domain.model.LoginUser; ...@@ -9,9 +10,14 @@ import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.IdentityTypeCode; import com.ruoyi.common.enums.IdentityTypeCode;
import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.enums.UserStatus;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.framework.manager.AsyncManager;
import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
import com.ruoyi.framework.web.service.SysLoginService; import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.system.cas.CasUserInfo; import com.ruoyi.system.cas.CasUserInfo;
...@@ -27,6 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -27,6 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.w3c.dom.Document; import org.w3c.dom.Document;
...@@ -75,10 +85,10 @@ public class CasAuthService { ...@@ -75,10 +85,10 @@ public class CasAuthService {
@Autowired @Autowired
private SysLoginService loginService; private SysLoginService loginService;
@Autowired
private SysPermissionService permissionService;
@javax.annotation.Resource
private AuthenticationManager authenticationManager;
...@@ -148,17 +158,38 @@ public class CasAuthService { ...@@ -148,17 +158,38 @@ public class CasAuthService {
return AjaxResult.error("对不起,您的账号已被禁用"); return AjaxResult.error("对不起,您的账号已被禁用");
} }
// 用户验证
Authentication authentication = null;
try
{
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), "xjtugwyy@.");
AuthenticationContextHolder.setContext(authenticationToken);
// 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
authentication = authenticationManager.authenticate(authenticationToken);
}
catch (Exception e)
{
if (e instanceof BadCredentialsException)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(user.getUserName(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
throw new UserPasswordNotMatchException();
}
else
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(user.getUserName(), Constants.LOGIN_FAIL, e.getMessage()));
throw new ServiceException(e.getMessage());
}
}
finally
{
AuthenticationContextHolder.clearContext();
}
AsyncManager.me().execute(AsyncFactory.recordLogininfor(user.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
// 记录登录信息 // 记录登录信息
loginService.recordLoginInfo(user.getUserId()); loginService.recordLoginInfo(user.getUserId());
// 生成token
// 生成Token
LoginUser loginUser = new LoginUser();
loginUser.setUser(user);
// 权限集合
Set<String> permissions = permissionService.getMenuPermission(user);
loginUser.setPermissions(permissions);
String token = tokenService.createToken(loginUser); String token = tokenService.createToken(loginUser);
// 返回登录结果 // 返回登录结果
......
...@@ -17,7 +17,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; ...@@ -17,7 +17,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
/** /**
* 【请填写功能名称】Controller * 学生 Controller
* *
* @author ruoyi * @author ruoyi
* @date 2025-11-10 * @date 2025-11-10
...@@ -30,7 +30,7 @@ public class SchoolStudentInfoController extends BaseController ...@@ -30,7 +30,7 @@ public class SchoolStudentInfoController extends BaseController
private ISchoolStudentInfoService schoolStudentInfoService; private ISchoolStudentInfoService schoolStudentInfoService;
/** /**
* 查询【请填写功能名称】列表 * 查询学生列表
*/ */
@PreAuthorize("@ss.hasPermi('system:student:list')") @PreAuthorize("@ss.hasPermi('system:student:list')")
@GetMapping("/list") @GetMapping("/list")
...@@ -42,7 +42,7 @@ public class SchoolStudentInfoController extends BaseController ...@@ -42,7 +42,7 @@ public class SchoolStudentInfoController extends BaseController
} }
/** /**
* 导出【请填写功能名称】列表 * 导出学生列表
*/ */
@PreAuthorize("@ss.hasPermi('system:info:export')") @PreAuthorize("@ss.hasPermi('system:info:export')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="/home/ruoyi/logs" /> <property name="log.path" value="/home/rs/logs" />
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment