Example #1
0
  /**
   * 生成签名并放在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);
  }