package com.fusionability.web.utils;import java.util.HashMap;import java.util.Map;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieTool { public static int maxAge = 7* 24 * 60 * 60; //保存7天 public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) { Cookie cookie = new Cookie(name, value); cookie.setPath("/"); if (maxAge > 0) cookie.setMaxAge(maxAge); response.addCookie(cookie); } public static Cookie getCookieByName(HttpServletRequest request, String name) { MapcookieMap = ReadCookieMap(request); if (cookieMap.containsKey(name)) { Cookie cookie = (Cookie) cookieMap.get(name); return cookie; } else { return null; } } private static Map ReadCookieMap(HttpServletRequest request) { Map cookieMap = new HashMap (); Cookie[] cookies = request.getCookies(); if (null != cookies) { for (Cookie cookie : cookies) { cookieMap.put(cookie.getName(), cookie); } } return cookieMap; }}
isChecked = getRequest().getParameterValues("isChecked");if (isChecked != null && isChecked.length > 0 ) {CookieTool.addCookie(getResponse(), "username", user.getUsername(), CookieTool.maxAge);CookieTool.addCookie(getResponse(), "userpswd", user.getUserpswd(), CookieTool.maxAge);}
public String updateUserInfo(){ user = userService.updateUser(user); if(user != null){ getSession().setAttribute(Constants.SESSION_USER, user); CookieTool.addCookie(ServletActionContext.getResponse(), "username", user.getUsername(), CookieTool.maxAge); // 清除Cookie CookieTool.addCookie(ServletActionContext.getResponse(), "userpswd", user.getUserpswd(), CookieTool.maxAge); // 清除Cookie return SUCCESS; } return ERROR; }
package com.fusionability.web.interceptor;import javax.servlet.ServletContext;import javax.servlet.ServletRequest;import javax.servlet.http.Cookie;import org.apache.struts2.ServletActionContext;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.fusionability.user.service.UserService;import com.fusionability.web.bean.User;import com.fusionability.web.utils.Constants;import com.fusionability.web.utils.CookieTool;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;/** * 认证拦截器(可以拦截URL的跳转) * @author liuzhengyi */public class AuthInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 8514282210475728866L; @Override public String intercept(ActionInvocation invocation) throws Exception { if("/FusionAbility/user/register.action".equals(ServletActionContext.getRequest().getRequestURI()) //||"/FusionAbility/user/login.action".equals(ServletActionContext.getRequest().getRequestURI()) ||"/FusionAbility/user/doRegister.action".equals(ServletActionContext.getRequest().getRequestURI()) ||"/FusionAbility/user/doLogin.action".equals(ServletActionContext.getRequest().getRequestURI()) ||"/FusionAbility/user/isExistUser.action".equals(ServletActionContext.getRequest().getRequestURI()) ||"/FusionAbility/user/otherUserAction.action".equals(ServletActionContext.getRequest().getRequestURI()) ||"/FusionAbility/user/goUpdateRetrievepassword.action".equals(ServletActionContext.getRequest().getRequestURI())){ return invocation.invoke(); } User user = (User)ServletActionContext.getRequest().getSession().getAttribute(Constants.SESSION_USER); if (user == null) { //重定向到登录页面 Cookie cokLoginName = CookieTool.getCookieByName(ServletActionContext.getRequest(), "username"); Cookie cokLoginPwd = CookieTool.getCookieByName(ServletActionContext.getRequest(), "userpswd"); if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue() != null && cokLoginPwd.getValue() != null) { String loginName = cokLoginName.getValue(); String loginPwd = cokLoginPwd.getValue(); User user2 = new User(); user2.setUsername(loginName); user2.setUserpswd(loginPwd); ServletContext sc = ServletActionContext.getServletContext(); ApplicationContext ac= WebApplicationContextUtils.getWebApplicationContext(sc); UserService userService = (UserService) ac.getBean("userService"); User user3 = userService.getUser(user2); if (user3 == null) { CookieTool.addCookie(ServletActionContext.getResponse(), "username", null, 0); // 清除Cookie CookieTool.addCookie(ServletActionContext.getResponse(), "userpswd", null, 0); // 清除Cookie return Action.LOGIN; }else{ ServletActionContext.getRequest().getSession().setAttribute(Constants.SESSION_USER,user3); return invocation.invoke(); } }else{ return Action.LOGIN; } } return invocation.invoke(); }}
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
![](https://yqfile.alicdn.com/img_81e700ed90042f6a809cc76caff4b5a2.png)
![](https://yqfile.alicdn.com/img_74a44b81a2d1f6112585a18c54f87eb5.jpeg)
![](https://yqfile.alicdn.com/img_4979b56769b1a2715573f5ace62e9135.png)