![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring cloud
贝壳里的沙
毕业于中国石油大学软件工程系,先后就职于北京方正集团、北京用友财务软件股份有限公司、广东安居宝数码科技股份有限公司、广东东道信息科技有限公司,拥有10年以上的开发管理经验,擅长安防相关的音视频编技术应用,在大数据分析处理等方面有丰富的经验和独到见解。
展开
-
SpringBoot代码生成系统
SpringBoot后台代码生成系统一、项目背景1、手动创建项目型问题2、项目复制型新建项目问题二、项目成果1、代码生成服务2、项目创建1、设计数据库2、创建项目3、项目结构二、合作使用一、项目背景作为技术人员的你,你可能遇到频繁的小项目不断的在创建(包括生产或技术语言),基础功能代码相似度达到90%,系统的基础接口、流程、参数等几近相似。每次新建项目就算你在熟悉,你也得花很大部分的时间(从数据库层到服务层到应用层到基础配置,我相信你在这里起码要花差不多半天的时间),不过你还是不断的创建类似项目、不断的原创 2020-10-19 17:06:41 · 764 阅读 · 1 评论 -
oauth2生成jwt令牌
一、介绍概念什么是jwt,即 json web token。JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。也是一种token,但是和token有一些不同。默认情况下,OAuth2生成的token为自定义的UUID的token,里面没有用户信息,但是jwt中包含了用户信息,这就是两者的根本不同,以为oauth2的token是有状态的,oauth2生成的token与用户session关联,jwt的token中自包含用户信息,可以是无状态的,授权服务器不用记录jwt与session原创 2020-09-06 12:55:54 · 3535 阅读 · 0 评论 -
苹果浏览器无法边下边播MP4(谷歌浏览器可以)
一、问题提出项目开发过程中遇到一个问题:>基于webkit内核的浏览器H5的Video标签(获取android手机,一般也是webkit浏览器)可以正常播放MP4文件,但是基于苹果操作系统的safari浏览器或者苹果微信小程序内置浏览器都无法播放远程后台的MP4文件。发现问题:为了能发现android端与IOS端微信小程序内置浏览器的不同,通过对比两个浏览器发送给后台的包,可以发现如下端倪:android浏览器:苹果浏览器:对比之后发现没有什么区别,最后发现问题并不...原创 2020-09-06 12:48:31 · 1577 阅读 · 0 评论 -
定制自己的Springboot控制台输出广告横幅--banner
定制自己的Springboot控制台输出广告横幅--banner一、介绍导读:好奇是最好的发现者,兴趣是最好的导师,当你对大千代码世界很好奇的时候,你就会主动去发现这个世界的奇妙,当你对程序感兴趣的时候,你才能有能力去驾驭它。大家的疑问对于使用SpringBoot或使用SpringCloud项目开发的人来说,我们经常在启动的时候,在控制台打印如下横幅广告:是不是很熟悉!是不是很亲切!!那么,各位是否思考过这个看不起眼的小问题?这个广告横幅是如何打印出来的?示例展示示例一如下我展示了一原创 2020-08-02 16:05:37 · 997 阅读 · 0 评论 -
OAuth2授权客户端访问资源服务
OAuth客户端访问资源服务一、简介在单点登录一文,我们是通过注解@EnableOAuth2Sso实现单点登录的,我们了解到OAuth2获取token的方式是通过OAuth2RestOperations请求授权服务获取授权码的模式实现的,当授权服务认证通过事后携带code转发到重定向地址(如客户端服务器的/login地址),客户端获取到code之后,在通过code交换到token。最后通过token的权限鉴定用户是否能否访问对应资源;@EnableOAuth2Sso实现的原理是通过OAuth2Rest原创 2020-08-02 15:57:42 · 2206 阅读 · 0 评论 -
oauth2自定义登录页面
OAuth2自定义登录页面一、前言继上一篇文章《OAuth2认证授权流程解析》,我们对OAuth2的4种认证模型的流程做了一一跟踪了解,我们知道当用户访问的资源需要认证之后,就会重定向到登录页面/login,此时就需要用户输入用户名和密码然后post方式提交到/login页面进行登录验证,如果验证通过则会跳转到原来的页面。这里要说明的是OAuth2提供了默认的登录页面,当你访问资源需要认证时候,默认跳转到OAuth2的登录页面:如果我们定义自己的页面,那么跳转后效果如下(虽然丑一点,不过您可以自己原创 2020-08-02 15:53:51 · 8619 阅读 · 0 评论 -
OAuth2单点登录实现
OAuth2客户端注解一、介绍1、相关概念首先,要说明使用之前,我们来了解一下oauth2提供的几个注解相关功能:@EnableOAuth2Client客户端,提供OAuth2RestTemplate,用于客户端访问资源服务。简要步骤:客户端访问资源->客户端发现没有资源访问token->客户端根据授权类型生成跳转url->浏览器 302 到认证授权服务进行认证、授权。@EnableOAuth2Sso应用系统,使用远端认证授权服务,替换应用自身的用户登录鉴权securit原创 2020-08-02 15:49:36 · 2542 阅读 · 1 评论 -
oauth2资源服务配置及源码解析
OAuth2 Client资源服务器一、相关介绍对于不熟悉OAuth2的童鞋,在阅读文本之前,请先阅读我的另一篇文章《oauth2认证流程》,以便对OAuth的认证流程有一定的了解。在设计比较好的系统中,他们一般有如下特点:模块化、微服务化耦合性低、内聚性高的相对独立的业务系统有自己的独立的授权系统,内部系统通过SSO单点登录进行授权第三方系统或内部系统都可以通过授权系统的多种授权方式进行业务对接有自己的网关实现授权、限流、负载等有自己的集中配置中心…这里我要重点讲解的是关于OAut原创 2020-08-02 15:44:06 · 1942 阅读 · 0 评论 -
OAuth2认证授权流程解析
《oAuth2授权服务4中认证授权模式流程及代码跟踪与解析》在阅读该文章前,需要对oAuth2的使用有一定的了解才能更好的阅读代码和理解对应流程一、介绍其实,关于系统认证授权的开源组件有很多,包括Shiro、Security和OAuth2等,这些组件各自有各自的优点,shiro配置比较简单,而OAuth2配置和实现相对而言就比较复杂一些,但是功能更强大,此处,我只讲解OAuth2相关技术,关于OAuth2的使用,我在csdn上已经写过几篇文章,大致已经将所有的流程说的比较明白,但是一直没有出一片比原创 2020-08-02 15:38:57 · 4647 阅读 · 2 评论 -
38、springcloud虚拟机网卡导致docker集群通信问题
在项目实战部署过程中,发现docker服务跑起来后,会遇到如下两个问题:(1)docker集群中运行的每一个容器一般会有3个网段(10.0段、10.255段和172段),在服务部署后,我们希望服务选择的网卡(注册到注册中心的网卡)与docker之间所在的网卡一直,也就是服务选择的网卡使我们创建的跨主机的网卡,那么服务与服务之间通信就没有问题,否则注册到注册中心的网卡不是我们创建的集群...原创 2019-03-30 14:37:55 · 615 阅读 · 0 评论 -
37、SpringBoot使用SSL免费证书
第一步、新建SpringBoot项目pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0ht...原创 2019-03-15 17:18:06 · 1326 阅读 · 0 评论 -
36、关于资源服务鉴权流程
使用springcloud框架时,最常用的鉴权流程框架是spring Security和OAuth2,OAuth2是SpringSecurity的扩展版;OAuth2.0有两种方式:1、授权服务与资源服务属于同一进程(同一服务)2、资源服务与授权服务分离(不属于同一进程) 对于第一种情况,我们很好区分,访问对应资源和授权数据同一进程,无需在配置文件中进行任何配置,但对于第二...原创 2019-03-15 17:10:52 · 1492 阅读 · 0 评论 -
35、Eureka 与docker swarm 问题
将服务发布到docker swarm后发现eureka 客户端暴露出来的ip不可连接。原因: docker swarm 集群发布后,docker 容器默认有3个网卡 ,eth0 ,eth1,eth2其中overlay 占用了两个,vip 模式其中只有一个ip是可用的,因此暴露了不可用ip将会出现问题。解决方案Specifying a custom network value in D...原创 2019-03-15 16:48:56 · 1007 阅读 · 0 评论 -
34、SpringCloud多网卡配置
docker部署过程中遇到如下问题:(1)docker容器创建之后,进入容器会发现容器有多个ip,一个是10.255段的一个是172段的,一个自定义集群的网络10.0.2段的(2)注册到eureka注册服务中的地址为10.255段的地址(3)通过网关访问注册到eureka中的服务时候获取到的ip是10.255段网址,是实际上各个服务监听的ip为10.0.2段的端口(4)网关无...原创 2019-03-12 09:47:28 · 8967 阅读 · 0 评论 -
33、SpringCloud分布式日志采集
微服务的项目大多都有好几个工程,总的来说可以使用elk+logstash+elasticsearch+kibana做分布式日志处理,ogstash接收日志,elasticsearch 处理数据,kibana展示数据。(1)打开防火墙firewall-cmd --zone=public --add-port=5601/tcp --permanentfirewall-c...原创 2019-03-12 09:47:19 · 5917 阅读 · 0 评论 -
32、WebJars与thymeleaf渲染引擎
1、webjar使用<!-- 使用webjar管理前端资源,此处引入bootstrap和jquery方便演示 --><dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId>...原创 2019-03-12 09:47:10 · 695 阅读 · 0 评论 -
31、关于oauth2.0 认证服务器同时也是资源服务器(同一进程)不能使用access_token原因解析
获的了access_token怎么使用?我们历经千辛万苦,才获取到access_token,那么获取到了access_token如何使用access_token?1、单独的资源服务器如何使用access_token 在《30、oauth2.0认证服务器与资源服务器分离成不同服务(进程)或既是认证服务又是资源服务器》一文中,我们后面一段代码解释了核心过滤器 OAuth2Au...原创 2019-03-12 09:47:02 · 2420 阅读 · 4 评论 -
30、oauth2.0认证服务器与资源服务器分离成不同服务(进程)或既是认证服务又是资源服务器
一、问题 对于oauth2.0的诟病我真是受够了,要不是时间问题,真他妈想理解原理后自己开发一套,对于oauth2.0的使用过程中出现的问题,一直困扰着我,网络有资料,几十份中基本没有出现我出现过的问题,最终还是经过调试源码一步一步找到对应问题。最终得以解决改问题,这位后续使用oauth2.0扫清了障碍。使用过程中,总结问题如下:(1)所有URL访问,无法...原创 2019-03-12 09:46:54 · 1798 阅读 · 2 评论 -
29、oauth2.0 资源服务器与授权服务器分离配置
废话刷说,这个问题已经困扰我多时,我已经经过n次尝试,n-1都是失败的,最后只有一次成功,失败是成功他妈,是血的教训,佛说千万次错过就是为了那一次邂逅。先把我遇到的问题罗列出来:(1)资源服务器和认证服务器分离后,配置resource.id无效;(2)存储的secret和用户密码都必须BCEncrypt加密;(3)认证服务器同时也是资源服务器的时候,四种授权模式不能共生(我出现的是...原创 2019-03-12 09:46:46 · 4497 阅读 · 3 评论 -
13、oauth2单点登录SSO系统配置
#服务配置server: #监听端口 port: 8762spring: application: #服务名称 name: auth2.0-center #分布式系统跟踪服务 zipkin: base-url:http://localhost:8763 #jpa注解持久化配置 jpa: #显示sql show-sql:...原创 2018-09-25 13:15:32 · 909 阅读 · 0 评论 -
15、oauth2.0使用thymeleaf渲染模板的自定义登录界面
我们所有的假设条件是,已经安装配置好springMVC环境或SpringBoot加入了web包。 为了更直观地看到跳转流程,我们添加一些页面和演示代码说明thymeleaf(1)在web包下新建SecurityController@Controllerpublic class SecurityController { @RequestMapping("/home") ...原创 2018-09-25 13:31:55 · 3802 阅读 · 1 评论 -
16.1、springBoot单点登录之用户服务实现
废话少说,直接步入正题。一、项目依赖父项目依赖(提供基础必备依赖):<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org...原创 2019-03-04 18:59:22 · 954 阅读 · 0 评论 -
17、SpringBoot单点登录SSO之Redis实现
紧接着文章《16、SpringBoot单点登录SSO数据库实现》一文中配置文件中如果出现类似${username:ut_user},表示引用变量username,如果找不到对应变量给赋值为默认值ut_user;一、配置信息保持不变#服务配置server: #监听端口 port: 8762 servlet: context-path: ...原创 2019-03-04 18:59:55 · 1484 阅读 · 0 评论 -
19、关于WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter区别联系
一、区别与联系1、ResourceServerConfigurerAdapter被配置为不同的端点(参见antMatchers),而WebSecurityConfigurerAdapter不是。 这两个适配器之间的区别在于,RealServServer配置适配器使用一个特殊的过滤器来检查请求中的承载令牌,以便通过OAuth2对请求进行认证。WebSecurityConfigurerAd...原创 2019-03-04 19:03:08 · 12654 阅读 · 7 评论 -
20、WebMvcConfigurerAdapter被Spring5.0弃用
在Spring5.0中,WebMvcConfigurerAdapter已经弃用,替代类:WebMvcConfigurationSupport或者DelegatingWebMvcConfiguration)* extends WebMvcConfigurerAdapter+@EnableWebMvc 等同于 extends WebMvcConfigurationSupport* 切勿使用@E...原创 2019-03-04 19:03:57 · 495 阅读 · 0 评论 -
21、自定义oauth认证Provider
一、前言 发现很少关于spring security的文章,基本都是入门级的,配个UserServiceDetails或者配个路由控制就完事了,而且很多还是xml配置,国内通病...so,本文里的配置都是java配置,不涉及xml配置,事实上我也不会xml配置二、spring security的大体介绍 spring security本身如果只是说配置,还是很简单易懂的(我也不知道...原创 2019-03-04 19:05:45 · 2061 阅读 · 0 评论 -
22、SpringCloud ConfigServer配置中心
概述 使用Spring Cloud开发微服务时,ConfigServer是常用的组件,它的作用是将Spring相关的配置项统一起来,其他微服务可以根据实际需要从ConfigServer fetch配置。 配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Sprin...原创 2019-03-04 19:13:21 · 693 阅读 · 0 评论 -
22.1、SpringCloud Bus消息总线
上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要一个服务一个服务的发送post请求,我们能受的了吗?这比之前的没配置中心好多了,那么我们如何继续避免挨个挨个的向服务发送Post请求来告知服务,你的配置信息改变了,需要及时修改内存中的配置信息。这时候我们就不要忘记消息队列的发布订阅模型。让所有为服务来订阅这...原创 2019-03-04 19:14:38 · 414 阅读 · 0 评论 -
23、SpringCloud Zipkin
一、简介Zipkin是一个全链路跟踪工具,可以用来监控微服务集群中调用链路的通畅情况,聚合各业务系统调用延迟数据,达到链路调用监控跟踪如图,在复杂的调用链路中假设存在一条调用链路...原创 2019-03-04 19:16:17 · 761 阅读 · 0 评论 -
24、Feign捕获错误码并降级处理
正常情况下,我们使用Feign一般使用方式如下(1)声明服务接口@FeignClient(name = "hello",fallback = HelloServiceImpl.class)public interface HelloService { @GetMapping("hello") public String hello();}...原创 2019-03-04 19:16:53 · 3001 阅读 · 1 评论 -
25、zuul之多维度限流
对请求的目标URL进行限流(例如:某个URL每分钟只允许调用多少次) 对客户端的访问IP进行限流(例如:某个IP每分钟只允许请求多少次) 对某些特定用户或者用户组进行限流(例如:非VIP用户限制每分钟只允许调用100次某个API等) 多维度混合的限流。此时,就需要实现一些限流规则的编排机制。与、或、非等关系。 介绍spring-cloud-zuul-rat...原创 2019-03-12 09:46:10 · 1461 阅读 · 0 评论 -
26、Spring Cloud Gateway限流
第一步:pom配置文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xs...原创 2019-03-12 09:46:21 · 803 阅读 · 0 评论 -
27、oauth2四种授权模式认证流程
重点:授权服务器如果同时存在WebSecurityConfigurerAdapter和ResourceServer,那么如下授权模式部分是无法使用的,所以保留WebSecurityConfigurerAdapter假设具体参数如下:(1)请求地址为:http://localhost:7010/uaa/oauth/XX(2)数据库表oauth_client_details初始化...原创 2019-03-12 09:46:30 · 1257 阅读 · 1 评论 -
28、Authentication request failed: error=“access_denied“, error_description=“Invalid token does not c
主题错误:Authentication request failed: error="access_denied", error_description="Invalid token does not contain resource id (oauth2-resource)"发博词Spring Security OAuth2 架构上分为Authorization Server...原创 2019-03-12 09:46:37 · 9315 阅读 · 0 评论 -
9、springcloud zuul 路由配置规则
一、配置静态静态路由zuul: routes: #路由名称 routename1: #匹配路径 path: /pathname/** #注意这里url要http://开头 url: http://localhost:8080 ...原创 2018-08-12 00:53:09 · 1873 阅读 · 0 评论