/** * 生成签名并放在session里 * * @param url * @param state * @param accessToken */ public void setSignatureToSession(String url, String state, String accessToken) { System.out.println(url); String signature = (String) request.getSession().getAttribute("signature" + state); String timestamp = (String) request.getSession().getAttribute("timestamp" + state); String nonceStr = (String) request.getSession().getAttribute("nonceStr" + state); String ticket = (String) request.getSession().getAttribute("ticket" + state); if (ticket == null) { System.out.println("ticket is null"); ticket = UserUtils.getTicket(accessToken); if (ticket == null) { servletContext.removeAttribute("expires_in"); servletContext.removeAttribute("access_token"); String access_token = getAccessToken(); ticket = UserUtils.getTicket(access_token); } request.getSession().setAttribute("ticket" + state, ticket); } Map<String, Object> maps = GenerateSignature.getSignature(ticket, url); nonceStr = (String) maps.get("nonceStr"); signature = (String) maps.get("signature"); timestamp = (String) maps.get("timestamp"); request.getSession().setAttribute("appId", UrlString.appId); request.getSession().setAttribute("timestamp" + state, timestamp); request.getSession().setAttribute("signature" + state, signature); request.getSession().setAttribute("nonceStr" + state, nonceStr); }