You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.3 KiB

package xyz.wbsite.action.ajax.system;
import org.springframework.beans.factory.annotation.Value;
import xyz.wbsite.frame.auth.LocalData;
import xyz.wbsite.frame.auth.Token;
import xyz.wbsite.frame.base.ErrorType;
import xyz.wbsite.frame.utils.CookieUtil;
import xyz.wbsite.frame.utils.IDgenerator;
import xyz.wbsite.frame.utils.MD5Util;
import xyz.wbsite.frame.utils.ValidationUtil;
import xyz.wbsite.module.system.req.UserLoginRequest;
import xyz.wbsite.module.system.req.UserLogoutRequest;
import xyz.wbsite.module.system.rsp.UserLoginResponse;
import xyz.wbsite.module.system.rsp.UserLogoutResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;
import java.util.Date;
public class UserAjax {
@Value("${web.url.auth.admin}")
private String admin;
@Value("${web.url.auth.pwd}")
private String pwd;
public UserLoginResponse login(UserLoginRequest request, Token token, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
UserLoginResponse response = new UserLoginResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
if (request.getUsername().equals(admin)) {//超级管理员登录
String generatePwd = MD5Util.generatePwd(request.getPassword());
if (!generatePwd.equals(pwd)) {
response.addError(ErrorType.BUSINESS_ERROR, "用户名或密码错误!");
} else {
Date current = new Date();
Calendar instance = Calendar.getInstance();
instance.setTime(current);
instance.add(Calendar.HOUR_OF_DAY, 1);//默认一个小时内有效
Token sysToken = LocalData.getSysToken();
sysToken.setToken(IDgenerator.nextUUID());
Cookie cookie = CookieUtil.newCookie("token", sysToken.getToken());
httpServletResponse.addCookie(cookie);
response.setToken(sysToken.getToken());
}
}
return response;
}
public UserLogoutResponse logout(UserLogoutRequest request, Token token) {
UserLogoutResponse response = new UserLogoutResponse();
CookieUtil.clearCookie("token");
return response;
}
}

Powered by TurnKey Linux.