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
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;
|
|
}
|
|
}
|