如何在新打git tag入库后自动触发Jenkins任务
jenkins配置:
1,源码管理(Git):
Refspec:+refs/tags/:refs/remotes/origin/tags/
Branch Specifier (blank for 'any'):
2,构建触发器:
Poll
SCM:打勾勾,但是什么都不要填
服务器端部署:
方法有三:
1,git hook
在服务器端部署post-receive hook,内容如下:
[python] view plain copy print
curl [jenkins address]/git/notifyCommiturl=[git clone address]
不需要权限,所以不用加用户名密码,就可以生效了~
2,gerrit hook
如果使用了gerrit的话,git服务器端的hook就不能用了,所以需要找能替代git post-receive的hook,这里可以用ref-updated(注意不是ref-update),内容同上,位置:review_site/hooks
3,gerrit trigger
这里使用的是ref-updated,但是branch哪里不知如何写,试了之后比较乱,分支更新也都触发了,故没有用。
1 前言
技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,“一看就会,一做就错”。网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么回事儿,简直让人抓狂,尤其是对于我这样的菜鸟。几经曲折,终于搞定了,决定记录下来,以便后续查看。先来看一下效果
2 准备
21 单点登录
最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次
下面这个图是我再网上找的,我觉得画得比较明白:
可惜有点儿不清晰,于是我又画了个简版的:
重要的是理解:
22 OAuth2
推荐以下几篇博客
《 OAuth 20 》
《 Spring Security对OAuth2的支持 》
3 利用OAuth2实现单点登录
接下来,只讲跟本例相关的一些配置,不讲原理,不讲为什么
众所周知,在OAuth2在有授权服务器、资源服务器、客户端这样几个角色,当我们用它来实现SSO的时候是不需要资源服务器这个角色的,有授权服务器和客户端就够了。
授权服务器当然是用来做认证的,客户端就是各个应用系统,我们只需要登录成功后拿到用户信息以及用户所拥有的权限即可
之前我一直认为把那些需要权限控制的资源放到资源服务器里保护起来就可以实现权限控制,其实是我想错了,权限控制还得通过Spring Security或者自定义拦截器来做
31 Spring Security 、OAuth2、JWT、SSO
在本例中,一定要分清楚这几个的作用
首先,SSO是一种思想,或者说是一种解决方案,是抽象的,我们要做的就是按照它的这种思想去实现它
其次,OAuth2是用来允许用户授权第三方应用访问他在另一个服务器上的资源的一种协议,它不是用来做单点登录的,但我们可以利用它来实现单点登录。在本例实现SSO的过程中,受保护的资源就是用户的信息(包括,用户的基本信息,以及用户所具有的权限),而我们想要访问这这一资源就需要用户登录并授权,OAuth2服务端负责令牌的发放等操作,这令牌的生成我们采用JWT,也就是说JWT是用来承载用户的Access_Token的
最后,Spring Security是用于安全访问的,这里我们我们用来做访问权限控制
4 认证服务器配置
41 Maven依赖
这里面最重要的依赖是:spring-security-oauth2-autoconfigure
42 applicationyml
43 AuthorizationServerConfig(重要)
说明:
44 WebSecurityConfig(重要)
45 自定义登录页面(一般来讲都是要自定义的)
自定义登录页面的时候,只需要准备一个登录页面,然后写个Controller令其可以访问到即可,登录页面表单提交的时候method一定要是post,最重要的时候action要跟访问登录页面的url一样
千万记住了,访问登录页面的时候是GET请求,表单提交的时候是POST请求,其它的就不用管了
46 定义客户端
47 加载用户
登录账户
加载登录账户
48 验证
当我们看到这个界面的时候,表示认证服务器配置完成
5 两个客户端
51 Maven依赖
52 applicationyml
这里context-path不要设成/,不然重定向获取code的时候回被拦截
53 WebSecurityConfig
说明:
54 MemberController
55 Order项目跟它是一样的
56 关于退出
退出就是清空用于与SSO客户端建立的所有的会话,简单的来说就是使所有端点的Session失效,如果想做得更好的话可以令Token失效,但是由于我们用的JWT,故而撤销Token就不是那么容易,关于这一点,在官网上也有提到:
本例中采用的方式是在退出的时候先退出业务服务器,成功以后再回调认证服务器,但是这样有一个问题,就是需要主动依次调用各个业务服务器的logout
6 工程结构
附上源码: https://githubcom/chengjiansheng/cjs-oauth2-sso-demogit
7 演示
8 参考
https://wwwcnblogscom/cjsblog/p/9174797html
https://wwwcnblogscom/cjsblog/p/9184173html
https://wwwcnblogscom/cjsblog/p/9230990html
https://wwwcnblogscom/cjsblog/p/9277677html
https://blogcsdnnet/fooelliot/article/details/83617941
http://blogleapoaheadcom/2015/09/07/user-authentication-with-jwt/
https://wwwcnblogscom/lihaoyang/p/8581077html
https://wwwcnblogscom/charlypage/p/9383420html
http://www360doccom/content/18/0306/17/16915_734789216shtml
https://blogcsdnnet/chenjianandiyi/article/details/78604376
https://wwwbaeldungcom/spring-security-oauth-jwt
https://wwwbaeldungcom/spring-security-oauth-revoke-tokens
https://wwwreinforcecn/t/630html
9 文档
https://projectsspringio/spring-security-oauth/docs/oauth2html
https://docsspringio/spring-security-oauth2-boot/docs/213RELEASE/reference/htmlsingle/
https://docsspringio/spring-security-oauth2-boot/docs/213RELEASE/
https://docsspringio/spring-security-oauth2-boot/docs/
https://docsspringio/spring-boot/docs/213RELEASE/
https://docsspringio/spring-boot/docs/
https://docsspringio/spring-framework/docs/
https://docsspringio/spring-framework/docs/514RELEASE/
https://springio/guides/tutorials/spring-boot-oauth2/
https://docsspringio/spring-security/site/docs/current/reference/htmlsingle/#core-services-password-encoding
https://springio/projects/spring-cloud-security
https://cloudspringio/spring-cloud-security/single/spring-cloud-securityhtml
https://docsspringio/spring-session/docs/current/reference/html5/guides/java-securityhtml
https://docsspringio/spring-session/docs/current/reference/html5/guides/boot-redishtml#boot-spring-configuration
原文链接:https://wwwcnblogscom/cjsblog/p/10548022html
HTTP 错误 403
4031 禁止:禁止执行访问
如果从并不允许执行程序的目录中执行 CGI、ISAPI或其他执行程序就可能引起此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
4032 禁止:禁止读取访问
如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的HTML 页时就会导致此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
4033 禁止:禁止写访问
如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
4034 禁止:需要 SSL
此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https:// 以启用 SSL。
如果问题依然存在,请与 Web服务器的管理员联系。
4035 禁止:需要 SSL 128
此错误消息表明您试图访问的资源受 128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL 层的浏览器。
请确认浏览器是否支持 128 位 SSL安全性。如果支持,就与 Web服务器的管理员联系,并报告问题。
4036 禁止:拒绝 IP 地址
如果服务器含有不允许访问此站点的 IP地址列表,并且您正使用的 IP地址在此列表中,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
4037 禁止:需要用户证书
当试图访问的资源要求浏览器具有服务器可识别的用户安全套接字层(SSL)证书时就会导致此问题。可用来验证您是否为此资源的合法用户。
请与 Web服务器的管理员联系以获取有效的用户证书。
4038 禁止:禁止站点访问
如果 Web服务器不为请求提供服务,或您没有连接到此站点的权限时,就会导致此问题。
请与 Web 服务器的管理员联系。
4039 禁止访问:所连接的用户太多
如果 Web太忙并且由于流量过大而无法处理您的请求时就会导致此问题。请稍后再次连接。
如果问题依然存在,请与 Web 服务器的管理员联系。
40310 禁止访问:配置无效
此时 Web 服务器的配置存在问题。
如果问题依然存在,请与 Web服务器的管理员联系。
40311 禁止访问:密码已更改
在身份验证的过程中如果用户输入错误的密码,就会导致此错误。请刷新网页并重试。
如果问题依然存在,请与 Web服务器的管理员联系。
40312 禁止访问:映射程序拒绝访问
拒绝用户证书试图访问此 Web 站点。
请与站点管理员联系以建立用户证书权限。如果必要,也可以更改用户证书并重试。
0条评论