Commit b39c28c8 by chentianzhong

提交代码

parent 042d7bfb
package com.zq.cas.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.zq.cas.entity.SysUser;
import com.zq.cas.service.ISysUserService;
import com.zq.cas.util.MD5PasswordEncoderUtil;
......@@ -58,6 +61,13 @@ public class ViewController {
String str = MD5.create().digestHex(sysUser.getUserId() + "|" + sysUser.getUsername() + "|" + sysUser.getPCode() + "|" + sysUser.getPassword());
if (str.equals(useKey)) {
if (MD5PasswordEncoderUtil.encode(passwd).equals(sysUser.getPassword())) {
// boolean update = this.sysUserService.lambdaUpdate().eq(SysUser::getUsername, username).set(SysUser::getPassword, MD5PasswordEncoderUtil.encode(newPasswd)).update();
// if (update) {
// return ResultVo.success("修改密码成功");
// }
//修改mysql密码
final String url = "http://147.1.4.53:8888/user/updatePwdByXC";
......@@ -70,9 +80,10 @@ public class ViewController {
HttpResponse execute = request.execute();
String body = execute.body();
log.info("修改密码4.53响应=> " + body);
if (execute.getStatus() == 200) {
boolean update = this.sysUserService.lambdaUpdate().eq(SysUser::getUsername, username).set(SysUser::getPassword, MD5PasswordEncoderUtil.encode(newPasswd)).update();
if (update) {
if (execute.getStatus() == 200 && StrUtil.isNotBlank(body)) {
JSONObject jsonObject = JSONUtil.parseObj(body);
String code = jsonObject.getStr("code");
if( code.equals("200")){
return ResultVo.success("修改密码成功");
}
}else {
......
......@@ -35,5 +35,9 @@ public class CasLoginDetail {
private String loginType;
private String browser;
private String os;
}
package com.zq.cas.handler;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.http.Header;
import cn.hutool.http.useragent.Browser;
import cn.hutool.http.useragent.OS;
import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil;
import com.zq.cas.credential.MyUsernamePasswordCredential;
import com.zq.cas.entity.SysUser;
import com.zq.cas.exception.PasswordErrorException;
......@@ -61,7 +67,9 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
@Override
protected AuthenticationHandlerExecutionResult doAuthentication(Credential credential) throws GeneralSecurityException, PreventedException {
MyUsernamePasswordCredential myCredential = (MyUsernamePasswordCredential) credential;
String username = myCredential.getUsername();
String password = myCredential.getPassword();
String loginType = myCredential.getLoginType();
......@@ -72,7 +80,33 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
String ipAddr = ServletUtil.getClientIP(request);
String ua = request.getHeader(Header.USER_AGENT.toString());
// if (StrUtil.isNotBlank(ua)){
// UserAgent userAgent = UserAgentUtil.parse(ua);
// //获取浏览器对象
// String browser = userAgent.getBrowser().getName();
// //获取操作系统对象
// String os = userAgent.getOs().toString();
// System.out.println("浏览器名:"+browser.getName());
// System.out.println("浏览器类型:"+browser.getBrowserType());
// System.out.println("浏览器家族:"+browser.getGroup());
// System.out.println("浏览器生产厂商:"+browser.getManufacturer());
// System.out.println("浏览器使用的渲染引擎:"+browser.getRenderingEngine());
// System.out.println("浏览器版本:"+userAgent.getBrowserVersion());
//
// System.out.println("操作系统名:"+operatingSystem.getName());
// System.out.println("访问设备类型:"+operatingSystem.getDeviceType());
// System.out.println("操作系统家族:"+operatingSystem.getGroup());
// System.out.println("操作系统生产厂商:"+operatingSystem.getManufacturer());
//
// }
logger.info("登录的用户名:{}; 密码 :{} ; ip地址:{}; 类型 :{}", username, password, ipAddr, loginType);
SysUser sysUser = null;
if (loginType.trim().equals("2")) {
......@@ -94,7 +128,19 @@ public class MyAuthenticationHandler extends AbstractPreAndPostProcessingAuthent
}
}
casLoginDetailService.saveLoginDetail(sysUser, ipAddr, loginType);
String browser = null;
String os = null;
if (StrUtil.isNotBlank(ua)) {
UserAgent userAgent = UserAgentUtil.parse(ua);
//获取浏览器对象
browser = userAgent.getBrowser().getName();
//获取操作系统对象
os = userAgent.getOs().toString();
}
casLoginDetailService.saveLoginDetail(sysUser, ipAddr, loginType, browser, os);
//自定义返回信息
Map<String, Object> message = new LinkedHashMap<>();
......
......@@ -6,5 +6,5 @@ import com.zq.cas.entity.SysUser;
public interface ICasLoginDetailService extends IService<CasLoginDetail> {
void saveLoginDetail(SysUser sysUser, String ip, String loginType);
void saveLoginDetail(SysUser sysUser, String ip, String loginType, String browser, String os);
}
......@@ -16,7 +16,7 @@ import java.util.Date;
public class CasLoginDetailServiceImpl extends ServiceImpl<CasLoginDetailMapper, CasLoginDetail> implements ICasLoginDetailService {
@Override
public void saveLoginDetail(SysUser sysUser, String ip, String loginType) {
public void saveLoginDetail(SysUser sysUser, String ip, String loginType, String browser, String os) {
CasLoginDetail casLoginDetail = CasLoginDetail.builder()
.userId(sysUser.getUserId())
.userName(sysUser.getUsername())
......@@ -26,7 +26,10 @@ public class CasLoginDetailServiceImpl extends ServiceImpl<CasLoginDetailMapper,
.orgIdentify(sysUser.getOrgCode())
.ip(ip)
.loginTime(new Date())
.loginType(loginType).build();
.loginType(loginType)
.browser(browser)
.os(os)
.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