SpringBoot集成JWT

JWT(json web tokens)是目前比较流行的跨域认证解决方案;说通俗点就是比较流行的token生成和校验的方案。碰巧公司有个app的项目的token采用了jwt方案,因此记录下后端项目集成jwt的过程,方便后续查阅。 一、jwt的简单介绍 jwt生成的token是一种无状态的token,服务端不需要对该token进行保存;它一般由客户端保存。客户端访问请求服务时,服务端对token进行校验,然后进行各种控制。下面直接拿一个生成好的token来讲解 通过上图我们可以发现jwt生成的t
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

[CQOI2016]手机号码 数位DP

[CQOI2016]手机号码 用来数位DP入门,数位DP把当前是否需要限制取数范围(是否正在贴着临界值跑,即下面的limited)和一切需要满足的条件全部塞进记忆化搜索参数里面就好了,具体情况转移便好了,答案为\(work(R)-work(L-1)\) #include <cstdio> #include <cstring> #define DP dp[p][a][b][hav_same][hav8][hav4][limited] #define ll long long using name
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

JFrame windowbuiler的使用基础

一、通过windowbuilder创建java项目: New --Other--windowbuilder--SWT Designer --SWT/JFace Java Project 二.创建文件 点击Design 三、通过可视化的java实体类和在实体类中编写java代码实现JFrame窗体的开发工作:在窗体中添加不同功能块、美化窗体、添加各种事件等实现JFrame窗体的开发,具体操作见下面中的一般功能; 四、通过eclipse利用windowbuilder插件开发窗体JFrame用到的一
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

java 使用 protobuf的示例

1、创建Stndent.proto并加入 syntax = "proto2"; package tutorial; option java_package = "com.example.tutorial"; option java_outer_classname = "AddressBookProtos"; message Person { required string name = 1; required int32 id = 2; optional
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

似魔鬼的步伐

题面: 假设他拥有N格体力。初始摩擦值为0,每次可以选择可以摩擦或者行走。摩擦消耗两格体力,第n次的摩擦值=第n-1次的摩擦值*2+2。行走消耗一格体力,第n次的摩擦值=第n-1次的摩擦值*1+1。求最大的摩擦值为多少? 思路: 贪心,消耗两格体力比消耗一格体力更优,所以如果n为奇数则先消耗一格体力,成为偶数,偶数的话全部消耗两个体力。 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,x; 4 long l
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

js常用设计模式实现(三)建造者模式

创建型模式 创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离 关于创建型模式,已经接近尾声了,还剩下建造者模式和原型模式,这一篇说一说建造者模式 建造者模式的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 很官方哈,举个例子,就拿他的名字来说,建房子,你尽管告诉开发商,我有钱我要一个这样的房子,然后开发商就会去找到工人,然后进行一些列的工作,最后工人干完之后,你住进去了,不关心过程,只要结果就是建造者模式 总之建造者模式就是通过一
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

POJ 1625 Censored!(AC自动机 + DP + 大数 + 拓展ASCII处理)题解

题意:给出n个字符,p个病毒串,要你求出长度为m的不包含病毒串的主串的个数 思路:不给取模最恶劣情况$50^{50}$,所以用高精度板子。因为m比较小,可以直接用DP写。 因为给你的串的字符包含拓展ASCII码(128~256),由于编译器的原因,char的读入范围在-128~127或者0~255之间不确定,所以你读一个拓展ASCII码的字符后可能是负的,那么你处理的时候要注意加130。或者你直接用map映射。或者用unsigned char。 代码: #include<cmath> #in
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十四场

传送门 A: Colorful Subsequence •题意 给一个长为n的小写字母序列,从中选出字母组成子序列 问最多能组成多少种每个字母都不相同的子序列 (不同位置的相同字母也算是不同的一种) •思路 对于每种字母有选与不选两种情况, ①如果选的话,j假设这种字母有xi种,那就有xi种选法 ②如果不选的话,有不选这一种方法 那总和起来就有(xi+1)中方法 设num[i]为每种字母的个数 对于所有的字母,总的种类数就是 但是要注意全不选的这种情况,对于上述种类数-1 即 •代码 #inc
分类: 其他 发布时间: 07-14 20:24 阅读次数: 0

【New Feature】阿里云云盘支持在线扩容

1.云盘在线扩容介绍  阿里云支持针对正在使用中(running状态)的云盘进行在线扩容,用户无需重启(reboot instance)实例即可完成物理空间扩容。 2.云盘在线扩容操作演示  您可以通过控制台或者API方式完成在线kuo扩容。
分类: 编程语言 发布时间: 07-14 20:08 阅读次数: 0

第五十三篇 并发编程之多进程续

目录 第五十三篇 并发编程之多进程续 一、守护进程 1.守护进程的特性 二、进程安全问题 三、互斥锁 1.同步的概念 2.锁的原理 3.锁的应用 IPC 四、Manager的使用 五、进程队列 六、函数调用栈 七、处理万能异常 八、生产者消费模型 第五十三篇 并发编程之多进程续 一、守护进程 1.守护进程的特性 1.守护进程会在主进程代码执行结束后就终止(而守护进程结束不会影响主进程的执行) 2.守护进程内无法再启动子进程,否则会抛出异常:AssertionError: daemonic pr
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

虚拟机修改密码

1.首先开启Linux 选择第一个 CentOS Linux(3.10.0-327.e17.x86_64) 7(Core)然后按E进入 2.然后,找到linux16 在后面的UTF-8后面 加上 init =/bin/bash 3.然后进入bash-4.2# 输入指令 mount -o rw,remount / 其中rw 是读写read write 4. passwd root 进行修改用户密码; 然后出现New password:输入新的密码 例如:123 然后:提示:Retype new
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

CLion配置Cygwin环境

CLion "download" 跳转到 https://cygwin.com/install.html 下载64位安装程序并安装 国内添加网易镜像 http://mirrors.163.com/cygwin/ 接下来选择安装的模块,skip是选择安装的版本的按钮,所要选择的安装模块都在devel下 如果是 c/c++ 的环境。 可以直接搜索gcc-core、gcc-g++、make、gdb、binutils,cmake 这几个是必须要下载的。 注意还需要将你的cgwin的安装目录中的bin导
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

数组查表法之根据键盘录入索引,查找对应星期

根据键盘录入索引,查找对应星期: import java.util.Scanner; class Hello2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个1-7之间的整数"); int week = sc.nextInt(); System.ou
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

第五十四篇 并发之线程

目录 一、生产者消费者模型 1.模型1 2.joinableQueue 二、多线程 1.线程的相关概念 2.为什么需要线程 3.多线程使用 4.进程与线程 5.线程安全问题 5.守护线程 6.线程中的常用属性和方法 一、生产者消费者模型 1.生产者:泛指产生数据的一方 2.消费者:泛指处理数据的一方 3.模型:解决某个问题的固定方法或套路 4.生产者消费者模型要解决的问题:由于进程之间或内部可能会有数据的生产和处理两种情况,当两者的运行速度不同时,则双方会相互等待,这样就会导致效率低下 5.解
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

比较系统性失效和随机性失效

本文描述系统性失效和随机性失效,并介绍它们与硬件和软件失效的关系。 失效可以被分为两类: 1)随机性失效 2)系统性失效 随机性失效指发生的时间无法确定,但却遵循概率分布的失效。随机失效不适用于软件,只适用于硬件,所以也把它叫做随机硬件失效 (Random Hardware Failure)。随机失效由物理原因导致,比如腐蚀、热应力、老化。因为这些原因的随机特性,硬件在何时发生随机性失效是无法预测的,但是遵循概率分布(比如指数分布)。随机失效的概率分布可以从测试、历史数据中获得。因为随机失效符
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

第五十五篇 死锁、GIL锁以及Pool

目录 一、死锁 1.死锁现象 2.递归锁(可重入锁) 3.信号量 二、GIL(全局解释器锁) 1.什么是GIL 2.GIL带来的问题 1.单个线程开启流程 2.多个线程开启流程 3.为什么需要GIL 1.GC线程 2.GIL带来的问题 3.GIL锁的作用 4.关于GIL的性能 1.GIL的加锁与解锁时机 2.性能测试 3.GIL与自定义锁的区别 三、线程池与进程池 1.线程池 2.进程池 3.线程池与进程池 四、同步与异步 1.回顾 2.同步 3.异步 1.异步相关概念 2.解决异步无法知晓任
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

leetcode-109-有序链表转二叉搜索树

---恢复内容开始---  题目描述: 方法一:O(n) O(n) class Solution: def sortedListToBST(self, head: ListNode) -> TreeNode: nums = [] while head: nums.append(head.val) head = head.next def helper(nums):
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

IP地址排序

#!/usr/bin/python3 #-*- coding:utf8 -*- import sys import os import socket #编写环境 windows10 + Python3.5.3 # 在同一目录生成排序好的IP文件ip_newsort.txt #输入如下 python3 ipsort.py ip.txt iplist = [] def ipsort(iplist): #写文件 with open('ip_news
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

1050 String Subtraction (20 分)

1050 String Subtraction (20 分) Given two strings S1 and S2, S=S1−S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1−S2 for any given strings. However, it might not be that simp
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0

ubantu18.04安装网易云以及遇到的问题

前几天重装了ubantu系统,打算写点遇到的问题。均是总结网上的内容,具体网址已忘记(QAQ),如有侵权,联系即删。 安装网易云: 首先,在网易云官网下载ubantu18.04的deb包, 然后文件所在的终端中写入命令sudo dpkg -i netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb。若失败,修补依赖 sudo apt -f install,之后在安装一次。 这个时候基本上算是完成了,但是每次启动网易云都要用sudo命令才能启动,并
分类: 其他 发布时间: 07-14 20:08 阅读次数: 0