...
|
...
|
@@ -154,96 +154,124 @@ public class LoginController { |
|
|
@ResponseBody
|
|
|
public ResponseModel doLogin(String loginAccount, String password, String captcha) {
|
|
|
|
|
|
SessionUtil.putKey(Constants.CAPTCHA, "");
|
|
|
ResponseModel rm = new ResponseModel(200, "", null);
|
|
|
// 查询该账号是否被禁用
|
|
|
|
|
|
UserEntity user = new UserEntity();
|
|
|
user.setLoginaccount(loginAccount);
|
|
|
user.setPassword(password);
|
|
|
|
|
|
if (!loginAccount.equals("admin") && "true".equals(PropertiesLoader.getLogin("openRemoteLogin"))) {
|
|
|
// 远程登录
|
|
|
// 用户数据
|
|
|
LoginData login = FLogin.login(user);
|
|
|
// 登录成功!
|
|
|
if (login.getCode() == 20000) {
|
|
|
// 往数据库中插入数据
|
|
|
UserEntity ue = userService.findByLoginaccount(user.getLoginaccount());
|
|
|
// 用户存在
|
|
|
if (ue != null) {
|
|
|
// 修改密码
|
|
|
userService.updatePassword(ue.getLoginaccount(), MD5Tools.MD5(password));
|
|
|
UserEntity userEntity = userService.findLoginaccount(loginAccount);
|
|
|
|
|
|
if (userEntity.getStatus() != 0){
|
|
|
|
|
|
rm.setStatus(201);
|
|
|
return rm;
|
|
|
}else {
|
|
|
// 等于5次 锁定账户 admin 除外
|
|
|
if (userEntity.getLoginerror() != 5){
|
|
|
SessionUtil.putKey(Constants.CAPTCHA, "");
|
|
|
|
|
|
UserEntity user = new UserEntity();
|
|
|
user.setLoginaccount(loginAccount);
|
|
|
user.setPassword(password);
|
|
|
|
|
|
if (!loginAccount.equals("admin") && "true".equals(PropertiesLoader.getLogin("openRemoteLogin"))) {
|
|
|
// 远程登录
|
|
|
// 用户数据
|
|
|
LoginData login = FLogin.login(user);
|
|
|
// 登录成功!
|
|
|
if (login.getCode() == 20000) {
|
|
|
// 往数据库中插入数据
|
|
|
UserEntity ue = userService.findByLoginaccount(user.getLoginaccount());
|
|
|
// 用户存在
|
|
|
if (ue != null) {
|
|
|
// 修改密码
|
|
|
userService.updatePassword(ue.getLoginaccount(), MD5Tools.MD5(password));
|
|
|
} else {
|
|
|
// 用户不存在,插入数据
|
|
|
BasicAgentEntity agent = new BasicAgentEntity();
|
|
|
agent.setContact(login.getInfodata().getContact());
|
|
|
agent.setNameCn(login.getInfodata().getCompany());
|
|
|
agent.setCountryCode("CN");
|
|
|
agent.setAddress(login.getInfodata().getAddress());
|
|
|
int agent_id = agentSerive.save2(agent);
|
|
|
|
|
|
ue = new UserEntity();
|
|
|
ue.setLoginaccount(loginAccount);
|
|
|
// 设置用户名密码
|
|
|
ue.setPassword(MD5Tools.MD5(password));
|
|
|
ue.setRealName(login.getInfodata().getContact());
|
|
|
ue.setMobile(login.getInfodata().getMobile());
|
|
|
ue.setStatus(0);
|
|
|
ue.setAgent(new Long(agent_id));
|
|
|
RoleEntity re = new RoleEntity();
|
|
|
re.setId(new Long(1));
|
|
|
ue.setRole(re);
|
|
|
// 删除密码
|
|
|
userService.save(ue);
|
|
|
}
|
|
|
|
|
|
// 登录用户
|
|
|
Subject subject = SecurityUtils.getSubject();
|
|
|
subject.getSession().setAttribute("user", user);
|
|
|
UsernamePasswordToken token = new UsernamePasswordToken(loginAccount, MD5Tools.MD5(password));
|
|
|
try {
|
|
|
subject.login(token);
|
|
|
subject.getSession().setAttribute("permission", roleService
|
|
|
.findAllFunctionByRole(((UserEntity) subject.getSession().getAttribute("user")).getRole()));
|
|
|
subject.getSession().setAttribute("all_function", functionService.findAll());
|
|
|
//登录成功 请空失败次数
|
|
|
userService.emptyLoginerror(loginAccount);
|
|
|
} catch (UnknownAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (IncorrectCredentialsException e) {
|
|
|
// 添加错误次数
|
|
|
userService.updateLoginError(loginAccount, userEntity.getLoginerror() + 1);
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (LockedAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
}
|
|
|
} else {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
}
|
|
|
} else {
|
|
|
// 用户不存在,插入数据
|
|
|
BasicAgentEntity agent = new BasicAgentEntity();
|
|
|
agent.setContact(login.getInfodata().getContact());
|
|
|
agent.setNameCn(login.getInfodata().getCompany());
|
|
|
agent.setCountryCode("CN");
|
|
|
agent.setAddress(login.getInfodata().getAddress());
|
|
|
int agent_id = agentSerive.save2(agent);
|
|
|
|
|
|
ue = new UserEntity();
|
|
|
ue.setLoginaccount(loginAccount);
|
|
|
// 设置用户名密码
|
|
|
ue.setPassword(MD5Tools.MD5(password));
|
|
|
ue.setRealName(login.getInfodata().getContact());
|
|
|
ue.setMobile(login.getInfodata().getMobile());
|
|
|
ue.setStatus(0);
|
|
|
ue.setAgent(new Long(agent_id));
|
|
|
RoleEntity re = new RoleEntity();
|
|
|
re.setId(new Long(1));
|
|
|
ue.setRole(re);
|
|
|
// 删除密码
|
|
|
userService.save(ue);
|
|
|
// 登录用户
|
|
|
Subject subject = SecurityUtils.getSubject();
|
|
|
subject.getSession().setAttribute("user", user);
|
|
|
UsernamePasswordToken token = new UsernamePasswordToken(loginAccount, MD5Tools.MD5(password));
|
|
|
// System.out.println(loginAccount+" " + password);
|
|
|
try {
|
|
|
subject.login(token);
|
|
|
subject.getSession().setAttribute("permission", roleService
|
|
|
.findAllFunctionByRole(((UserEntity) subject.getSession().getAttribute("user")).getRole()));
|
|
|
subject.getSession().setAttribute("all_function", functionService.findAll());
|
|
|
|
|
|
//登录成功 请空失败次数
|
|
|
userService.emptyLoginerror(loginAccount);
|
|
|
} catch (UnknownAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
System.out.println();
|
|
|
rm.setMsg("1");
|
|
|
} catch (IncorrectCredentialsException e) {
|
|
|
// 添加错误次数
|
|
|
userService.updateLoginError(loginAccount, userEntity.getLoginerror() + 1);
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (LockedAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 登录用户
|
|
|
Subject subject = SecurityUtils.getSubject();
|
|
|
subject.getSession().setAttribute("user", user);
|
|
|
UsernamePasswordToken token = new UsernamePasswordToken(loginAccount, MD5Tools.MD5(password));
|
|
|
try {
|
|
|
subject.login(token);
|
|
|
subject.getSession().setAttribute("permission", roleService
|
|
|
.findAllFunctionByRole(((UserEntity) subject.getSession().getAttribute("user")).getRole()));
|
|
|
subject.getSession().setAttribute("all_function", functionService.findAll());
|
|
|
} catch (UnknownAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (IncorrectCredentialsException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (LockedAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
}
|
|
|
} else {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
}
|
|
|
} else {
|
|
|
// 登录用户
|
|
|
Subject subject = SecurityUtils.getSubject();
|
|
|
subject.getSession().setAttribute("user", user);
|
|
|
UsernamePasswordToken token = new UsernamePasswordToken(loginAccount, MD5Tools.MD5(password));
|
|
|
// System.out.println(loginAccount+" " + password);
|
|
|
try {
|
|
|
subject.login(token);
|
|
|
subject.getSession().setAttribute("permission", roleService
|
|
|
.findAllFunctionByRole(((UserEntity) subject.getSession().getAttribute("user")).getRole()));
|
|
|
subject.getSession().setAttribute("all_function", functionService.findAll());
|
|
|
} catch (UnknownAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (IncorrectCredentialsException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
} catch (LockedAccountException e) {
|
|
|
rm.setStatus(500);
|
|
|
rm.setMsg("1");
|
|
|
return rm;
|
|
|
}else {
|
|
|
|
|
|
userService.updateStatus(loginAccount);
|
|
|
rm.setStatus(201);
|
|
|
return rm;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return rm;
|
|
|
}
|
|
|
|
|
|
|
...
|
...
|
|