关于用Struts2 拦截器做手机端token的验证
来源:互联网 发布:淘宝登录首页官网 编辑:程序博客网 时间:2024/05/17 03:33
关于用Struts2 拦截器做手机端token的验证,手机端请求服务器端任何接口,都要自动通过拦截器进入自定义拦截类中走一趟,当手机端拿着token进入时 就开始判断 token是否有效,无效的话任何接口调不到,并返回错误代码101。自定义拦截类可根据自己的需求来写
拦截器设置 Struts.xml
<package name="sel" namespace="" extends="json-default"> <!-- <interceptors> <interceptor name="MyInterceptor" class="自定义的拦截类地址"/> </interceptors> --> <interceptors> <!-- 定义权限控制拦截器 --> <interceptor name="MyInterceptor" class="自定义的拦截类地址" /> <!-- 定义一个包含权限控制的拦截器栈 --> <interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="MyInterceptor" /> </interceptor-stack> </interceptors> <!-- 定义默认拦截器 --> <default-interceptor-ref name="mydefault" /> <!-- 设置全局拦截器验证错误输出--> <global-results> <result name="error" type="json"> <param name="root">result</param> </result> </global-results> </package> <!-- 由于是设置了全局拦截 所以其他的包都要集成拦截器的包--><package name="selPackage" namespace="" extends="sel">
自定义拦截器类
import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import com.app.xxx.xxx;import com.app.service.xxxService;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor; import org.apache.struts2.ServletActionContext;import org.springframework.beans.factory.annotation.Autowired;//需实现Interceptor类public class TokenUtil implements Interceptor{ /** * */ private static final long serialVersionUID = 1L; private static final String YAN = "XXXXX";// 加盐 @Autowired private static XXX xxx; @Autowired private XxxService xxxServices; public TokenUtil() { } /** * 产生一个token */ public static Token generateToken(String uniq) { Token token = new Token(MD5.toMD5(System.currentTimeMillis()+YAN+uniq), System.currentTimeMillis()); return token; } @Override public void destroy() { // TODO Auto-generated method stub System.out.println("---------destroy()---------"); } @Override public void init() { // TODO Auto-generated method stub System.out.println("---------init()---------"); } public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub ActionContext ctx = ActionContext.getContext(); Map<String, Object> jsonResult = new HashMap<>(); HttpServletRequest request=ServletActionContext.getRequest(); String token = request.getHeader("xxxx");//获取客户端储存的token try{ if (System.currentTimeMillis() > xxx.getTokentime()) { //当token失效,将数据库中的token和有效时间替换掉,内容随意填 XXX.update("", -1, "",xxx.id()); //错误返回输出 jsonResult.put("resultCode", "100 "); ctx.put("result", jsonResult); return "error"; }else{ String Dbtoken = xxx.getToken(); if (Dbtoken != null && Dbtoken.equals(token)){ //如果通过就放行 return invocation.invoke(); return invocation.invoke(); }else{ jsonResult.put("resultCode", "101"); ctx.put("result", jsonResult); return "error"; } } }catch(NullPointerException e) { jsonResult.put("resultCode", "102"); ctx.put("result", jsonResult); return "error"; } }--------------------------------------------------------------------------- get and set}我是将 自己生成的token存入数据库中 然后验证
0 0
- 关于用Struts2 拦截器做手机端token的验证
- Struts2拦截器--token
- struts2的token拦截器的原理及作用
- Struts2的拦截器、自定义拦截器、Struts2 验证机制
- 关于struts2的拦截器
- 用Struts2的拦截器验证用户是否登录
- Struts2的拦截器&验证器
- Struts2拦截器的应用:登录验证
- Struts2拦截器token防止重复提交
- OKhttp 拦截器Intercept token失效验证
- 关于token验证的了解
- 关于struts2中的拦截器和登陆验证
- 关于struts2中的拦截器和登陆验证
- 关于struts2拦截器
- struts2 拦截器 登录验证
- Struts2拦截器登录验证
- Struts2拦截器登录验证
- Struts2拦截器登录验证
- 1900: 985的“树”难题
- Android打包APK出现Export aborted because fatal lint errors错误
- 对面试题的一点总结
- hive中的histogram_numeric函数
- ubuntu下,在QT中利用科大讯飞语音库实现语音合成TTS
- 关于用Struts2 拦截器做手机端token的验证
- hihocoder 1068 RMQ-ST入门
- MFC(一)——Windows程序内部运行原理
- 关于模版类编译出现unresolved external symbol的问题
- 程序员提高效率的一些建议
- memcpy和memmove的实现
- OpenCL 初实践(1)矩阵相乘
- MySQL大小写敏感说明
- Gallery API 16 被替换掉了