SpringCloudSpring Cloud Consul服务治理
Consul是一款由HashiCorp公司开源的,用于服务治理的软件,Spring Cloud Consul对其进行了封装。Consul具有如下特点: Consul agent有两种运行模式:Server和Client。这里的Server和Client只是Consul集群层面的区分,与搭建在Cluster之上 的应用服务无关。 以Server模式运行的Consul agent节点用于维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server mode的Agent,Client节点不限。 Consul下载地址: https://www.consul.
SecuritySpring Security OAuth2入门
OAuth是一种用来规范令牌(Token)发放的授权机制,主要包含了四种授权模式:授权码模式、简化模式、密码模式和客户端模式。Spring Security OAuth2对这四种授权模式进行了实现。这节主要记录下什么是OAuth2以及Spring Security OAuth2的基本使用。 在了解这四种授权模式之前,我们需要先学习一些和OAuth相关的名词。举个社交登录的例子吧,比如在浏览器上使用QQ账号登录虎牙直播,这个过程可以提取出以下几个名词: Third-party application 第三方应用程序,比如这里的虎牙直播; HTTP service HTTP服务提供商,比如这里的QQ(腾讯); Resource Owner 资源所有者,就是QQ的所有人,你; User Agent 用户代理,这里指浏览器; Authorization server 认证服务器,这里指QQ提供的第三方登录服务; Resource server 资源服务器,这里指虎牙直播提供的服务,比如高清直播,弹幕发送等(需要认证后才能使用)。 认证服务器和资源服务器可以在同一台服务器上,比如前后端分离的服务
SpringCloud使用Spring Cloud Sleuth跟踪微服务
在微服务数量较多的系统架构中,一个完整的HTTP请求可能需要经过好几个微服务。如果想要跟踪一条完整的HTTP请求链路所产生的日志,我们需要到各个微服务上去查看日志并检索出我们需要的信息。随着业务发展,微服务的数量也会越来越多,这个过程也变得愈发困难。不过不用担心,Spring Cloud Sleuth为我们提供了分布式服务跟踪的解决方案,通过使用Sleuth可以让我们快速定位某个服务的问题。简单来说,Sleuth相当于调用链监控工具的客户端,集成在各个微服务上,负责产生调用链监控数据。官方文档地址如下: https://cloud.spring.io/spring-cloud-static/s
SpringCloud使用Spring Cloud Bus刷新配置
在《Spring Cloud Config统一配置管理》中,我们实现了通过往Config-Client发送/refreshPOST请求来刷新配置。不过这种方式只对单个Config-Client有效(往哪个Config-Client发送刷新请求,哪个配置就得到刷新,剩下的Config-Client获取的仍是旧的配置信息)。当Config-Client实例集群数量较多时,如果都要手动一个一个去刷新配置,不仅麻烦还容易遗漏。值得庆幸的是,我们可以借助Spring Cloud Bus来自动刷新集群的配置信息。 Spring Cloud Bus使用轻量级的消息代理(如RabbitMQ,Kafka)连接分布式系统的节点,可以以广播的形式将一些变更信息(如配置的变更)扩散到分布式链路中去。所以我们可以在Config-Server和Config-Client集群中加入Spring Cloud Bus,然后往某个Config-Server实例发送/refresh请求来刷新集群中所有实例的配置信息。 在引入Spring Cloud Bus之前,我们先来简单验证下开头的结论。我们用上一节的源码为基础,来搭建
javaJAVA中的Map遍历
这篇文章主要介绍了JAVA8独有的map遍历方式(非常好用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 通过Map.keySet遍历key和value 通过Map.entrySet遍历key和value
SecuritySpring Security权限控制
Spring Security权限控制可以配合授权注解使用,接着上一节,要开启这些注解,只需要在Spring Security配置文件中添加如下注解: 在UserDetailService中,我们给当前登录用户授予了”admin”的权限,我们将这块代码改造一下:当登录用户为wno704的时候,其拥有”admin”权限,其他用户则只有”test”权限: 添加一个方法,并且使用权限注解标明只有拥有“admin”权限的人才能访问:
SecuritySpring Security退出登录
Spring Security默认的退出登录URL为/logout,退出登录后,Spring Security会做如下处理: 1.是当前的Sesion失效; 2.清除与当前用户关联的RememberMe记录; 3.清空当前的SecurityContext; 4.重定向到登录页。 Spring Security允许我们通过配置来更改上面这些默认行为。
SecuritySpring Security Session管理
用户登录成功后,信息保存在服务器Session中,这节学习下如何管理这些Session。这节将在《Spring Security短信验证码登录》的基础上继续扩展。 Session超时时间也就是用户登录的有效时间。要设置Session超时时间很简单,只需要在配置文件中添加: SpringBoot2.0以后的版本,server.servlet.session.timeout取值依据;之前在server.session.timeout路径配置;timeout取值字符串方式,默认为正,负以-开头,紧接着P,以下字母不区分大小写 D :天 T:天和小时之间的分隔符 H :小时 M:分钟 S:秒 每个单位都必须是数字,且时分秒顺序不能乱。比如P2dt3m5s P3d pt3h
SecuritySpring Security短信验证码登录
在《Spring Security添加图形验证码》一节中,我们已经实现了基于Spring Boot + Spring Security的账号密码登录,并集成了图形验证码功能。时下另一种非常常见的网站登录方式为手机短信验证码登录,但Spring Security默认只提供了账号密码的登录认证逻辑,所以要实现手机短信验证码登录认证功能,我们需要模仿Spring Security账号密码登录逻辑代码来实现一套自己的认证逻辑。 我们在《Spring Security自定义用户认证》这一节Spring Security添加图形验证码的基础上来集成短信验证码登录的功能。 和图形验证码类似,我们先定义一个短信验证码对象SmsCode: