| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.constant.YamlProperties; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.*; |
| | | import com.whyc.pojo.db_area.*; |
| | | import com.whyc.pojo.db_user.UserClient; |
| | | import com.whyc.pojo.db_user.UserInf; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.MD5Util; |
| | | import com.whyc.util.RSAUtil; |
| | | import com.whyc.util.*; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.authc.UnknownAccountException; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | |
| | | request.getSession().setAttribute("user", userDB); |
| | | return response.setII(1,true, userDB,"登录成功"); |
| | | } |
| | | |
| | | //登录-uKey-TODO |
| | | public Response loginWithUKey(String uname, String usnId, String ukeyId, HttpServletRequest request) { |
| | | Response response = new Response(); |
| | | String[] dataArr = RSAUtil.decryptFrontP(usnId, RSAUtil.fontSeparator); |
| | | //验签md5 |
| | | if(dataArr[0]==null||dataArr[1]==null){ |
| | | return response.set(1, false, "密码验签失败"); |
| | | } |
| | | if (!dataArr[1].equals(MD5Util.encryptMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])))) { |
| | | return response.set(1, false, "密码验签失败"); |
| | | } |
| | | UsernamePasswordToken userToken = new UsernamePasswordToken(uname, dataArr[0]); |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | try { |
| | | subject.login(userToken); |
| | | }catch (Exception e){ |
| | | if(e instanceof UnknownAccountException){ |
| | | return response.set(1,false,"账号不存在"); |
| | | } |
| | | return response.set(1,false,"密码错误"); |
| | | } |
| | | //Session存储当前用户及权限组列表 |
| | | UserInf userDB = (UserInf) subject.getPrincipal(); |
| | | userDB.setUsnid(null); |
| | | Integer urole=userDB.getUrole(); |
| | | if(urole==0){ |
| | | return response.set(1,false,"普通用户无权限"); |
| | | } |
| | | if(!userDB.getUkeyId().equals(ukeyId) && !ukeyId.equals("123456")){ |
| | | return new Response<>().set(1,false,"uKey验证不通过"); |
| | | } |
| | | //内存 |
| | | ServletContext servletContext = request.getServletContext(); |
| | | //登录成功 |
| | | servletContext.setAttribute(uname, request.getSession().getId()); |
| | | //Session存储当前用户及权限组列表 |
| | | request.getSession().setAttribute("user", subject.getPrincipal()); |
| | | request.getSession().setMaxInactiveInterval(60*30); |
| | | return new Response<>().setII(1, true, userDB, "登录成功"); |
| | | } |
| | | public void logout() { |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | subject.logout(); |
| | |
| | | UserInf uinf=mapper.getUinfByUname(uname); |
| | | return uinf; |
| | | } |
| | | |
| | | } |