GitHub OAuth第三方登录
GitHub OAuth 第三方登录示例教程 - 阮一峰的网络日志 (ruanyifeng.com)
概述前面介绍了OAuth的详细概念知识。很多网站登录时,允许使用第三方网站的身份,这称为”第三方登录”。
下面就以 GitHub 为例,写一个最简单的应用,演示第三方登录。
第三方登录的原理所谓第三方登录,实质就是 OAuth 授权。用户想要登录 A 网站,A 网站让用户提供第三方网站的数据,证明自己的身份。获取第三方网站的身份数据,就需要 OAuth 授权。
举例来说,A 网站允许 GitHub 登录,背后就是下面的流程。
A 网站让用户跳转到 GitHub。
GitHub 要求用户登录,然后询问”A 网站要求获得 xx 权限,你是否同意?”
用户同意,GitHub 就会重定向回 A 网站,同时发回一个授权码。
A 网站使用授权码,向 GitHub 请求令牌。
GitHub 返回令牌.
A 网站使用令牌,向 GitHub 请求用户数据。
应用登记一个应用要求 OAuth 授权,必须先到对方网站登记,让对方知道是谁在请求。
所以,你要先去 GitHub 登记一下。当然,我已经 ...
OAuth2.0的四种授权
OAuth 2.0 的四种方式 - 阮一峰的网络日志 (ruanyifeng.com)
10 分钟理解什么是 OAuth 2.0 协议 | Deepzz’s Blog
概述OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。
OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。……资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。
这段话的意思就是,OAuth 的核心就是向第三方应用颁发令牌。然后,RFC 6749 接着写道:
(由于互联网有多种场景,)本标准定义了获得令牌的四种授权方式(authorization grant )。
OAuth 2.0 列举了四种授权类型,分别用于不同的场景:
Authorization Code(授权码 code):服务器与客户端配合使用。
Implicit(隐式 token):用于移动应用程序或 Web 应用程序(在用户设备上运行的应用程序)。
Resource Owner Password Credentials(资源所有者密码凭证 passw ...
什么是OAuth2.0?
OAuth 2.0 的一个简单解释 - 阮一峰的网络日志 (ruanyifeng.com)
认证授权基础 | JavaGuide
概述OAuth 是一个行业的标准授权协议,主要用来授权第三方应用获取有限的权限。而 OAuth 2.0 是对 OAuth 1.0 的完全重新设计,OAuth 2.0 更快,更容易实现,OAuth 1.0 已经被废弃。详情请见:rfc6749 (opens new window)。
实际上它就是一种授权机制,它的最终目的是为第三方应用颁发一个有时效性的令牌 Token,使得第三方应用能够通过该令牌获取相关的资源。
OAuth 2.0 比较常用的场景就是第三方登录,当你的网站接入了第三方登录的时候一般就是使用的 OAuth 2.0 协议。
另外,现在 OAuth 2.0 也常见于支付场景(微信支付、支付宝支付)和开发平台(微信开放平台、阿里开放平台等等)。
微信支付账户相关参数:
下图是 Slack OAuth 2.0 第三方登录 (opens new window)的示意图:
角色首先需要介绍的是 OAuth 2.0 协议中的一些角色,整个授权协议的 ...
Transactional注解的6种失效场景
一口气说出 6种 @Transactional 注解失效场景 (qq.com)
@Transactional@Transactional 可以作用在接口、类、类方法。
作用于类:当把@Transactional 注解放在类上时,表示所有该类的public方法都配置相同的事务属性信息。
作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。
作用于接口:不推荐这种使用方法,因为一旦标注在Interface上并且配置了Spring AOP 使用CGLib动态代理,将会导致@Transactional注解失效。
相关属性Spring事务详解 | Kylin (codekylin.cn)
@Transactional 应用在非 public 修饰的方法上如果Transactional注解应用在非public 修饰的方法上,Transactional将会失效。
之所以会失效是因为在Spring AOP 代理时,如上图所示 TransactionInterceptor (事务拦截器)在目标方法执行前后进行拦截,Dy ...
Jenkins构建项目
Jenkins中自动构建项目的类型有很多,常用的有以下三种:
自由风格软件项目(FreeStyle Project)
Maven项目(Maven Project)
流水线项目(Pipeline Project)
每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。(PS:个人推荐使用流水线类型,因为灵活度非常高)
自由风格项目构建
配置源码管理,从gitlab拉取代码
构建->添加构建步骤->Executor Shell
123echo "开始编译和打包"mvn clean packageecho "编译和打包结束"
把项目部署到远程的Tomcat里面。
Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
下载安装成功后,重启Jenkins。接着创建Tomcat用户密码凭证
接着回到我们的项目配置里构建后操作—>Deploy war/ear to a container
...
Jenkins自动部署环境准备
Maven安装和配置安装在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。
下载apache-maven-3.6.3-bin.tar.gz。上传到/usr/local/
12tar -zxvf apache-maven-3.6.3-bin.tar.gzvim /etc/profile
source /etc/profile
mvn -v查看Maven版本
安装成功!
全局工具配置关联JDK和MavenJenkins->Global Tool Configuration->JDK->新增JDK,配置如下:
Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下:
添加Jenkins全局变量 Manage Jenkins->Configure System->Global Properties ,添加三个全局变量
JAVA_HOME
M2_HOME
PATH+EXTRA
配置文件12mkdir /repositoryvim /usr/local/a ...
Jenkins安装和插件使用
安装安装JDK
获取jenkins安装包
下载页面:https://jenkins.io/zh/download/
安装文件:jenkins-2.190.3-1.1.noarch.rpm
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm命令安装
修改Jenkins配置
vi /etc/syscofig/jenkins
修改内容如下:
12JENKINS_USER="root" JENKINS_PORT="8888"
将用户改成root否则默认使用的是jenkins用户,则需要创建一个Linux用户。
启动Jenkins
systemctl start jenkins
出现问题Jenkins bash: /usr/bin/java: No such file or directory
vim /etc/init.d/jenkins编辑文件,将candidates加入自己配置的JAVA_HOME的bin下的java命令
再次启动Jenkins
systemctl start jenkins
cat /va ...
GitLab的安装使用
概念
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
安装yum -y install policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd && sudo systemctl start sshd
systemctl enable postfix && systemctl start postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
命令运行失败,点击链接下载,上传到服务器即可。
安装
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
rpm -ivh --replacepkgs gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm覆 ...
超详细的Vagrant上手指南
本文转载https://zhuanlan.zhihu.com/p/259833884
搭建 Linux 虚拟机,别再用 VirtualBox 从 .iso 文件安装了。
概述2020 年了,也许你已经习惯了 docker,习惯了在 XX 云上快速创建云主机,但是如果你想在个人电脑上安装虚拟机来搭建开发/测试环境,Vagrant 仍然不失高效之选。
文末有和 docker 的对比说明。
本篇内容字数过万,收藏的同时别忘了点个赞,谢谢!
安装软件安装 VirtualBox
进入 VirtualBox 的主页,点击大大的下载按钮,即可进入下载页面。
VirtualBox 是一个跨平台的虚拟化工具,支持多个操作系统,根据自己的情况选择对应的版本下载即可。
注意,除了主程序,还要把对应的扩展包程序也一并下载了。有些高级特性,比如 USB 3.0 等需要扩展包的支持。
在安装完主程序后,直接双击扩展包文件即可安装扩展包。
下载页面先别关,后面还要用到。
安装 Vagrant
在 Vagant 网站下载最新的版本,根据自己的操作系统选择对应的版本下载即可。
注意,Vagrant 是没有 ...
Docker监控CIG
概念通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。
但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能
CAdvisorCAdvisor是一个容器资源监控工具,包括容器的内存,CPU,网络IO,磁盘IO等监控,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过,CAdvisor提供了很多数据集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。
功能主要有两点:
展示Host和容器两个层次的监控数据
展示历史变化数据
InfluxDBInfluxDB是一种时序数据库,用来存放监控数据。InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。
CAdvisor默认只在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到 ...