2019 年 12 月 - 5 文章

解刨SOLO认证流程

  |   0 评论   |   0 浏览

0.要搞个东西呀所以不得不解析一下代码.一行一行走 1.开始 点击开始使用时调用 @RequestProcessing(value = "/login/redirect", method = HttpMethod.GET) public void redirectAuth(final RequestContext context) { // 从当前域里拿到站点地址 String referer = context.param("referer"); if (StringUtils.isBlank(referer)) { referer = Latkes.getServePath(); } // 生成一个 16 位随机的东西然后跟入站点地址 String state = RandomStringUtils.randomAlphanumeric(16) + referer; // 放到集合里 STATES.add(state); // 构造 请求 url 请求 hacpai,回调/login/callback final String loginAuthURL = "https://hacpai....

C Queue Demo

  |   0 评论   |   0 浏览

queue.h #ifndef QUEUE_H #define QUEUE_H #include <stdbool.h> typedef int Item; #define MAXQUEUE 10 typedef struct node { Item item; struct node *next; } Node; typedef struct queue { // 队列首项 Node *front; // 队列尾项 Node *rear; // 队列长度 int items; } Queue; // 初始化队列 void InitializeQueue(Queue *pq); // 队列是否满了 bool QueueIsFull(const Queue *pq); // 队列是否空了 bool QueueIsEmpty(const Queue *pq); // 队列项数 int QueueItemCount(const Queue *pq); // 入队 bool EnQueue(Item item, Queue *pq); // 出队 bool DeQueue(....

C LinkList Demo

  |   0 评论   |   0 浏览

list.h head 头类,定义接口 // 如果没有定义 LIST_H_宏 #ifndef LIST_H_ // 定义 LIST_H 宏 #define LIST_H_ // 布尔 #include <stdbool.h> // 标题长度 #define TSIZE 45 // 电影 结构体 struct film { // 电影名称 char title[TSIZE]; // 评分 int rating; }; // 将 struct film 用 Item 类型代替 typedef struct film Item; // 将 struct node 使用 Node 代替 typedef struct node{ Item item; struct node *next; } Node; // 链表结构和 Node 类相同 typedef Node *List; // 初始化链表 void InitalizeList(List *plist); // 链表是否为空 bool ListIsEmpty(const List *plist); // 是否还可以创建新的 next 节点 boo....

《C Primer Plus》手记三

  |   0 评论   |   0 浏览

C Primer Plus 手记一 C Primer Plus 手记二 13.位操作 编号 0 0 0 0 0 0 0 0 ^ ^ ^ ^ ^ ^ ^ ^ 7 6 5 4 3 2 1 0 7 为最高位,0 为最低位' 7-0 每个位置为 1 分别代表为 128 64 32 16 8 4 2 1 所以一个 bytes 最大为 128+64+32+16+8+4+2+1 = 255 最小为 0000000 = 0 一个 byte 8 位 [] [] [] [] [] [] [] [] 11111111 = 255 00000000 = 0 所以 单字节 取值范围为 0-255 高阶位存储符号 1000 0001 = -1 1111 1111 = -127 1000 0000 = -0 0000 0001 = 1 0111 1111 = +127 0000 0000 = +0 正负 0 的问题可以用二进制补码来解决 正数的反码和补码都与原码相同。 负数的反码为对该数的原码除符号位外各位取反。 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加 1 二进制运算符 // 取反 ~(10011010) -&....

Gitlab简易Release脚本

  |   0 评论   |   0 浏览

#!/usr/bin/env bash echo -n "0.请输入你的 GitHub Access Token:" read token echo -n "1.请输入项目的 id:" read id echo -n "2.请输入项目 release 的名称:" read name echo -n "3.请输入即将创建 release 版本的 tag:" read tag_name echo -n "4.请输入 release 的描述:" read description curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: token" \ --data '{ "name": "'name'", "tag_name": "'tag_name'", "ref":"'tag_name'" ,"description": "'description'" }' \ --request POST http://gitlab_url/api/v4/projects/id/releases