spring boot 验证token
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
@RestController
public class check extends HttpServlet {
@RequestMapping(value = { "/check" }, method = RequestMethod.GET)
public void signature(
@RequestParam(value = "signature", required = true) String signature,
@RequestParam(value = "timestamp", required = true) String timestamp,
@RequestParam(value = "nonce", required = true) String nonce,
@RequestParam(value = "echostr", required = true) String echostr,
HttpServletResponse response) throws IOException {
String[] values = { "mytoken", timestamp, nonce };
Arrays.sort(values); // 字典序排序
String value = values[0] + values[1] + values[2];
String sign = DigestUtils.shaHex(value);
PrintWriter writer = response.getWriter();
if (signature.equals(sign)) {// 验证成功返回ehcostr
writer.print(echostr);
} else {
writer.print("error");
}
writer.flush();
writer.close();
}
}