Search in sources :

Example 6 with BaseLoginUser

use of com.diboot.iam.entity.BaseLoginUser in project diboot by dibo-software.

the class SSOAuthServiceImpl method saveLoginTrace.

/**
 * 保存登录日志
 * @param authToken
 * @param isSuccess
 */
protected void saveLoginTrace(BaseJwtAuthToken authToken, boolean isSuccess) {
    IamLoginTrace loginTrace = new IamLoginTrace();
    loginTrace.setAuthType(getAuthType()).setAuthAccount(authToken.getAuthAccount()).setUserType(authToken.getUserType()).setSuccess(isSuccess);
    BaseLoginUser currentUser = IamSecurityUtils.getCurrentUser();
    if (currentUser != null) {
        Long userId = currentUser.getId();
        loginTrace.setUserId(userId);
    }
    // 记录客户端信息
    String userAgent = request.getHeader("user-agent");
    String ipAddress = IamSecurityUtils.getRequestIp(request);
    loginTrace.setUserAgent(userAgent).setIpAddress(ipAddress);
    try {
        iamLoginTraceService.createEntity(loginTrace);
    } catch (Exception e) {
        log.warn("保存登录日志异常", e);
    }
}
Also used : IamLoginTrace(com.diboot.iam.entity.IamLoginTrace) BaseLoginUser(com.diboot.iam.entity.BaseLoginUser) InvalidUsageException(com.diboot.core.exception.InvalidUsageException) BusinessException(com.diboot.core.exception.BusinessException) AuthenticationException(org.apache.shiro.authc.AuthenticationException)

Example 7 with BaseLoginUser

use of com.diboot.iam.entity.BaseLoginUser in project diboot by dibo-software.

the class LogAspect method afterReturningHandler.

/**
 * 操作日志处理
 * @param proceedingJoinPoint
 */
@AfterReturning(value = "pointCut()", returning = "returnObj")
public void afterReturningHandler(JoinPoint proceedingJoinPoint, Object returnObj) {
    IamOperationLog operationLog = buildOperationLog(proceedingJoinPoint);
    BaseLoginUser currentUser = IamSecurityUtils.getCurrentUser();
    if (currentUser == null) {
        currentUser = threadLocal.get();
    }
    // 处理返回结果
    int statusCode = 0;
    String errorMsg = null;
    if (returnObj instanceof JsonResult) {
        JsonResult jsonResult = (JsonResult) returnObj;
        statusCode = jsonResult.getCode();
        if (statusCode > 0) {
            errorMsg = jsonResult.getMsg();
        }
    }
    operationLog.setStatusCode(statusCode).setErrorMsg(errorMsg);
    // 异步保存操作日志
    iamAsyncWorker.saveOperationLog(operationLog, currentUser);
}
Also used : BaseLoginUser(com.diboot.iam.entity.BaseLoginUser) IamOperationLog(com.diboot.iam.entity.IamOperationLog) JoinPoint(org.aspectj.lang.JoinPoint) JsonResult(com.diboot.core.vo.JsonResult)

Aggregations

BaseLoginUser (com.diboot.iam.entity.BaseLoginUser)7 IamLoginTrace (com.diboot.iam.entity.IamLoginTrace)3 AuthenticationException (org.apache.shiro.authc.AuthenticationException)3 BusinessException (com.diboot.core.exception.BusinessException)2 LabelValue (com.diboot.core.vo.LabelValue)2 InvalidUsageException (com.diboot.core.exception.InvalidUsageException)1 BaseService (com.diboot.core.service.BaseService)1 JsonResult (com.diboot.core.vo.JsonResult)1 AuthService (com.diboot.iam.auth.AuthService)1 IamExtensible (com.diboot.iam.auth.IamExtensible)1 IamAccount (com.diboot.iam.entity.IamAccount)1 IamOperationLog (com.diboot.iam.entity.IamOperationLog)1 IamRole (com.diboot.iam.entity.IamRole)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 SimpleAuthenticationInfo (org.apache.shiro.authc.SimpleAuthenticationInfo)1 SimpleAuthorizationInfo (org.apache.shiro.authz.SimpleAuthorizationInfo)1 JoinPoint (org.aspectj.lang.JoinPoint)1