cookie java spring

简介:       package com.fusionability.web.utils; import java.util.HashMap; import java.util.Map; import javax.

 

 

 

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捐助),没钱捧个人场,谢谢各位。



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

 

 

目录
相关文章
|
13天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
13天前
|
缓存 Java 数据库
【Java面试题汇总】Spring篇(2023版)
IoC、DI、aop、事务、为什么不建议@Transactional、事务传播级别、@Autowired和@Resource注解的区别、BeanFactory和FactoryBean的区别、Bean的作用域,以及默认的作用域、Bean的生命周期、循环依赖、三级缓存、
【Java面试题汇总】Spring篇(2023版)
|
3天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
346 5
|
14天前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
14天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
16天前
|
存储 搜索推荐 JavaScript
|
1月前
|
IDE Java 开发工具
快速上手指南:如何用Spring Boot开启你的Java开发之旅?
【8月更文挑战第22天】Spring Boot由Pivotal团队开发,简化了Spring应用的创建过程。本文详述了从零开始搭建Spring Boot项目的步骤:首先确保安装了新版JDK、Maven/Gradle及IDE如IntelliJ IDEA或Eclipse;接着访问Spring Initializr网站(start.spring.io),选择所需依赖(如Web模块)并生成项目;最后,使用IDE打开生成的项目,添加`@SpringBootApplication`注解及main方法来启动应用。通过这些步骤,即便是新手也能快速上手,专注于业务逻辑的实现。
34 1
|
27天前
|
Java 前端开发 Apache
Apache Wicket与Spring MVC等Java Web框架大PK,究竟谁才是你的最佳拍档?点击揭秘!
【8月更文挑战第31天】在Java Web开发领域,众多框架各具特色。Apache Wicket以组件化开发和易用性脱颖而出,提高了代码的可维护性和可读性。相比之下,Spring MVC拥有强大的生态系统,但学习曲线较陡;JSF与Java EE紧密集成,但在性能和灵活性上略逊一筹;Struts2虽成熟,但在RESTful API支持上不足。选择框架时还需考虑社区支持和文档完善程度。希望本文能帮助开发者找到最适合自己的框架。
30 0
|
27天前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
31 0
|
29天前
|
安全 Java 开发者
Java反射:Spring Boot背后的魔法,让你的代码质量飞跃的神秘力量!
【8月更文挑战第29天】Java反射机制允许程序在运行时访问和修改类、接口、方法等属性,而Spring Boot则广泛应用反射实现依赖注入和自动配置。本文探讨如何利用反射机制提升Spring Boot应用的代码质量,包括动态类型处理、元数据访问及依赖注入等方面。通过实战示例展示动态调用方法和自定义注解处理,强调反射机制对代码灵活性与扩展性的贡献,同时提醒开发者注意性能和安全问题。
45 0