项目中经常会有防表单重复提交的需要 google了一下spring mvc的做法 大概看了下觉得稍微有点麻烦就自己写了一个 。
import java.util.UUID;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ui.ModelMap;
import com.yuitat.common.lang.util.CookieHelper;
/**
*
* @Filename TokenUtil.java
*
* @Description 令牌工具类
*
* @Version 1.0
*
* @Author huqing
*
* @Email qing.hu2009@gmail.com
*
* @History
*<li>Author: huqing</li>
*<li>Date: 2012-3-28</li>
*<li>Version: 1.0</li>
*<li>Content: create</li>
*
*/
public class TokenUtil {
private static final Logger logger = LoggerFactory.getLogger(TokenUtil.class);
public static final String COOKIE_TOKEN = "COOKIE_TOKEN";
public static final String TOKEN = "token";
/**
* 生成令牌
*
* @param response
* @param domain 哉名
*/
public static void generate(HttpServletResponse response, ModelMap modelMap) {
String uuid = UUID.randomUUID().toString();
Cookie cookie = new Cookie(COOKIE_TOKEN, uuid);
cookie.setPath("/");
CookieHelper.addCookies(response, cookie, 30 * 60);
modelMap.put(TOKEN, uuid);
}
/**
* 验证令牌
*
* @param request
* @param response
* @param domain
* @return
*/
public static boolean verification(HttpServletRequest request, HttpServletResponse response) {
Object object = request.getParameter(TOKEN);
if (null == object) {
return false;
}
String token = object.toString();
String cookieToken = CookieHelper.getCookieByName(request, COOKIE_TOKEN);
if (token.equals(cookieToken)) {
clean(response);
return true;
} else {
logger.error("表单提交token异常 [token = " + token + ", cookieToken =" + cookieToken + "]");
return false;
}
}
/**
* 清除令牌
*
* @param response
* @param domain 哉名
*/
private static void clean(HttpServletResponse response) {
Cookie cookie = new Cookie(COOKIE_TOKEN, null);
cookie.setPath("/");
CookieHelper.removeCookie(response, cookie, COOKIE_TOKEN);
}
}
分享到:
相关推荐
C# Web用户令牌(Token)验证是一种常见的方式,用于防止未经授权的HTTP请求,如GET和POST,确保数据的安全传输。本技术介绍将深入探讨如何使用C#实现令牌验证机制,并结合Nginx集群与SSL证书来增强WebAPI的安全性。...
本文将深入探讨ASP.NET WebAPI2如何实现基于Token的令牌身份验证。 首先,我们需要理解Token的身份验证原理。这种机制下,用户登录后,服务器会生成一个唯一的Token,这个Token包含了一些关于用户的信息,经过加密...
本文档主要讨论了使用《STS Simulator Ver 3.6》软件对电能仪表的STS(Secure Token System)系统进行TOKEN令牌测试的过程。STS系统在预付费电能表中应用广泛,其核心功能是确保充值过程的安全性,通过生成、验证...
Token令牌支付技术是一种提高在线支付安全性的创新方法,它通过替换真实的个人账户号码(PAN)来保护消费者的敏感信息。这种技术在C#等编程语言的环境中也可以实现,尤其是在移动支付场景下,对于数据安全至关重要。...
"WebApi使用TOKEN+签名验证"是一种常见的安全策略,它结合了令牌(Token)验证和签名机制,以确保只有授权的客户端能够访问服务。下面将详细介绍这两种方法及其在实际应用中的实现。 1. **令牌(Token)验证**: ...
`access_token`验证过期类是为了解决这个问题而设计的一种机制,确保应用程序能够正确地处理和更新过期的访问令牌。 `access_token`是OAuth 2.0授权框架中的一部分,主要用于安全地访问受保护的资源。当用户授权一...
`Token`机制作为一种现代的身份验证方式,被广泛应用,以提高用户认证的安全性和灵活性。本文将深入探讨如何在Java环境中创建和使用`Token`,以及其背后的算法原理。 首先,我们需要理解什么是`Token`。`Token`是一...
`token`验证是一种身份验证机制,它允许客户端通过提供一个令牌来证明其身份。这个令牌通常由服务器在用户成功登录后生成,包含用户的相关信息,如用户ID,过期时间等,并且是加密的。服务器会检查请求中的`token`,...
return Ok(new { token = tokenString }); ``` 客户端收到JWT后,将其存储在本地(如Cookie或LocalStorage),并在后续请求中通过`Authorization`头发送。ASP.NET Core中间件将自动处理这个头,验证JWT并设置`...
Nginx在WebApi集群,除了OAUTH身份验证外,针对移动端的手机、平板电脑等,还经常使用Token令牌验证,通过服务器授权发出有效期的Token,客户端通过此Token在当前有效期内,进行访问获取信息数据。
在本文中,我们将深入探讨如何使用Node.js、Vue.js和MongoDB实现基于Token的验证登录系统,特别是通过JSON Web Tokens(JWT)进行身份验证。这是一个常见的Web应用安全实践,能够确保用户信息的安全,并且便于跨域...
首先,`Token`是用于识别用户身份的令牌,它在客户端和服务端之间传递,以确保只有合法用户能够访问受保护的资源。在Spring框架中,我们可以使用Spring Security模块来实现Token验证功能,它可以提供强大的认证和...
3. **生成Token**:通过`JwtSecurityTokenHandler`的`CreateEncodedJwt`方法,将安全令牌转换为编码的JWT字符串。 ```csharp var handler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(...
Token可以被视为一种轻量级的安全令牌,它包含了用户的身份信息,并通过签名确保其完整性。在WebAPI中,当用户成功登录后,服务器会返回一个Token,客户端需要在后续的所有API请求中附带这个Token,以此证明请求的...
在Polygon网络上创建Token令牌是一项常见的任务,尤其是对于那些希望在以太坊生态系统之外扩展其区块链项目的开发者。Polygon,以前称为Matic Network,是一个Layer 2解决方案,旨在提高以太坊网络的性能和可扩展性...
在IT行业中,Token是一种常见的身份验证机制,广泛应用于Web应用、API接口以及移动应用中。本文将深入探讨Token的生成规则及其相关工具,并基于提供的链接文章进行解析。 首先,理解Token的基本概念至关重要。Token...
验证Apple idToken 验证Apple idToken的小实用程序 您可以在后端使用它 令牌验证是过程的一部分 流程是 客户端应用(iOS或Android)会将用户重定向到OAuth2登录屏幕 用户将登录 应用程序将收到令牌 应用程序应将id...
当用户提交表单时,Token拦截器会检查提交的令牌是否与session中的令牌匹配,如果匹配则认为请求有效,否则抛出异常。 3. **处理异常:** 当出现重复提交或令牌不匹配的情况,Token拦截器会抛出`TokenException`。...