cookie java spring

 

 

 

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) {
		Map<String, Cookie> cookieMap = ReadCookieMap(request);
		if (cookieMap.containsKey(name)) {
			Cookie cookie = (Cookie) cookieMap.get(name);
			return cookie;
		} else {
			return null;
		}
	}

	private static Map<String, Cookie> ReadCookieMap(HttpServletRequest request) {
	    Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
		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捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值