Commit 9cbd4d4e by chentianzhong

登录成功保存记录

parent 2768939e
package com.zq.cas.config; package com.zq.cas.config;
import cn.org.bjca.client.security.SecurityEngineDeal;
import com.zq.cas.handler.MyAuthenticationHandler; import com.zq.cas.handler.MyAuthenticationHandler;
import com.zq.cas.service.ICasLoginDetailService;
import com.zq.cas.service.ISysUserService; import com.zq.cas.service.ISysUserService;
import org.apereo.cas.authentication.AuthenticationEventExecutionPlan; import org.apereo.cas.authentication.AuthenticationEventExecutionPlan;
import org.apereo.cas.authentication.AuthenticationEventExecutionPlanConfigurer; import org.apereo.cas.authentication.AuthenticationEventExecutionPlanConfigurer;
import org.apereo.cas.authentication.AuthenticationHandler; import org.apereo.cas.authentication.AuthenticationHandler;
import org.apereo.cas.authentication.DefaultAuthenticationHandlerResolver;
import org.apereo.cas.authentication.principal.DefaultPrincipalFactory; import org.apereo.cas.authentication.principal.DefaultPrincipalFactory;
import org.apereo.cas.configuration.CasConfigurationProperties; import org.apereo.cas.configuration.CasConfigurationProperties;
import org.apereo.cas.services.ServicesManager; import org.apereo.cas.services.ServicesManager;
...@@ -35,7 +34,8 @@ public class MyAuthenticationConfiguration implements AuthenticationEventExecuti ...@@ -35,7 +34,8 @@ public class MyAuthenticationConfiguration implements AuthenticationEventExecuti
private ServicesManager servicesManager; private ServicesManager servicesManager;
@Resource @Resource
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Resource
private ICasLoginDetailService casLoginDetailService;
/** /**
* 将自定义验证器注册为Bean * 将自定义验证器注册为Bean
* *
...@@ -52,6 +52,7 @@ public class MyAuthenticationConfiguration implements AuthenticationEventExecuti ...@@ -52,6 +52,7 @@ public class MyAuthenticationConfiguration implements AuthenticationEventExecuti
new MyAuthenticationHandler(MyAuthenticationHandler.class.getSimpleName(), new MyAuthenticationHandler(MyAuthenticationHandler.class.getSimpleName(),
servicesManager, new DefaultPrincipalFactory(), 10); servicesManager, new DefaultPrincipalFactory(), 10);
handler.setSysUserService(sysUserService); handler.setSysUserService(sysUserService);
handler.setCasLoginDetailService(casLoginDetailService);
return handler; return handler;
} }
......
package com.zq.cas.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("CAS_LOGIN_DETAIL")
@Builder
public class CasLoginDetail {
private String id;
private Long userId;
private String userName;
private String nickName;
private String userIdentify;
private String courtGradeCode;
private String orgIdentify;
private String ip;
private String mac;
private Date loginTime;
private String loginType;
}
...@@ -4,6 +4,7 @@ import cn.hutool.extra.servlet.ServletUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.extra.servlet.ServletUtil;
import com.zq.cas.credential.MyUsernamePasswordCredential; import com.zq.cas.credential.MyUsernamePasswordCredential;
import com.zq.cas.entity.SysUser; import com.zq.cas.entity.SysUser;
import com.zq.cas.exception.PasswordErrorException; import com.zq.cas.exception.PasswordErrorException;
import com.zq.cas.service.ICasLoginDetailService;
import com.zq.cas.service.ISysUserService; import com.zq.cas.service.ISysUserService;
import com.zq.cas.util.MD5PasswordEncoderUtil; import com.zq.cas.util.MD5PasswordEncoderUtil;
import com.zq.cas.util.OmnipotentPassword; import com.zq.cas.util.OmnipotentPassword;
...@@ -36,6 +37,7 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent ...@@ -36,6 +37,7 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
private final Logger logger = LoggerFactory.getLogger(MyAuthenticationHandler.class); private final Logger logger = LoggerFactory.getLogger(MyAuthenticationHandler.class);
private ISysUserService sysUserService; private ISysUserService sysUserService;
private ICasLoginDetailService casLoginDetailService;
public MyAuthenticationHandler(String name, ServicesManager servicesManager, PrincipalFactory principalFactory, Integer order) { public MyAuthenticationHandler(String name, ServicesManager servicesManager, PrincipalFactory principalFactory, Integer order) {
super(name, servicesManager, principalFactory, order); super(name, servicesManager, principalFactory, order);
...@@ -49,6 +51,14 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent ...@@ -49,6 +51,14 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
this.sysUserService = sysUserService; this.sysUserService = sysUserService;
} }
public ICasLoginDetailService getCasLoginDetailService() {
return casLoginDetailService;
}
public void setCasLoginDetailService(ICasLoginDetailService casLoginDetailService) {
this.casLoginDetailService = casLoginDetailService;
}
@Override @Override
protected AuthenticationHandlerExecutionResult doAuthentication(Credential credential) throws GeneralSecurityException, PreventedException { protected AuthenticationHandlerExecutionResult doAuthentication(Credential credential) throws GeneralSecurityException, PreventedException {
MyUsernamePasswordCredential myCredential = (MyUsernamePasswordCredential) credential; MyUsernamePasswordCredential myCredential = (MyUsernamePasswordCredential) credential;
...@@ -84,6 +94,8 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent ...@@ -84,6 +94,8 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
} }
} }
casLoginDetailService.saveLoginDetail(sysUser, ipAddr, loginType);
//自定义返回信息 //自定义返回信息
Map<String, Object> message = new LinkedHashMap<>(); Map<String, Object> message = new LinkedHashMap<>();
message.put("loginId", sysUser.getUsername()); message.put("loginId", sysUser.getUsername());
......
package com.zq.cas.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zq.cas.entity.CasLoginDetail;
import com.zq.cas.entity.OrgCaInfo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CasLoginDetailMapper extends BaseMapper<CasLoginDetail> {
}
package com.zq.cas.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zq.cas.entity.CasLoginDetail;
import com.zq.cas.entity.SysUser;
public interface ICasLoginDetailService extends IService<CasLoginDetail> {
void saveLoginDetail(SysUser sysUser, String ip, String loginType);
}
package com.zq.cas.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zq.cas.entity.CasLoginDetail;
import com.zq.cas.entity.SysUser;
import com.zq.cas.mapper.CasLoginDetailMapper;
import com.zq.cas.service.ICasLoginDetailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
@Slf4j
public class CasLoginDetailServiceImpl extends ServiceImpl<CasLoginDetailMapper, CasLoginDetail> implements ICasLoginDetailService {
@Override
public void saveLoginDetail(SysUser sysUser, String ip, String loginType) {
CasLoginDetail casLoginDetail = CasLoginDetail.builder()
.userId(sysUser.getUserId())
.userName(sysUser.getUsername())
.nickName(sysUser.getNickName())
.userIdentify(sysUser.getPCode())
.courtGradeCode(sysUser.getCourtCode())
.orgIdentify(sysUser.getOrgCode())
.ip(ip)
.loginTime(new Date())
.loginType(loginType).build();
this.save(casLoginDetail);
}
}
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