springboot

SpringBoot中使用SpringIntegration

spring-integration是一个功能强大的EIP(Enterprise Integration Patterns),即企业集成模式。对,spring-integration是一个集大成者。就我自己的理解,集成了众多功能的它,是一种便捷的事件驱动消息框架用来在系统之间做消息传递的。 今天我们来探索一下如果使用它发送http请求。

浏览

springBoot 定制自己的starter

在学习Spring Boot的过程中,接触最多的就是starter。使用者可以把starter当成是一种服务,使得使用某个功能时不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现需要的Bean,并织入bean。而自动装配就是Springboot最大的特性。

浏览

springboot中使用sentinel

首页我们先说说遇到的场景,我们需要对某些服务进行限流操作,在这样的场景下,我们要怎样才能做到这样的需求呢,这时候阿里的sentinel就能解决我们这样的问题 官方的介绍是这样的 引入jar包 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>ahas-sentinel-client</artifactId> <version>1.1.2</version> </dependency> 添加bean @Bean public FilterRegistrationBean sentinelFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new CommonFilter()); registration.addUrlPatterns("/*"); registration.setName("sentinelCommonFilter"); registration.setOrder(1); return registration; } 添加配置 上面讲到我们引入的包是ahas-sentinel-client,这个包到底是干嘛的,它是直接连接阿里云外网ahas服务用的,他需要两个配置 ,指你在阿里云分配的密钥https://ahas.console.aliyun.com dsconfig project.name=sentinel-demo ahas.license=XXXXX

浏览

springBoot系列 - 集成JWT实现接口权限认证

一般来讲,对于RESTful API都会有认证(Authentication)和授权(Authorization)过程,保证API的安全性。 Authentication vs. Authorization Authentication指的是确定这个用户的身份,Authorization是确定该用户拥有什么操作权限。 认证方式一般有三种 Basic Authentication 这种方式是直接将用户名和密码放到Header中,使用Authorization: Basic Zm9vOmJhcg==,使用最简单但是最不安全。 TOKEN认证 这种方式也是再HTTP头中,使用Authorization: Bearer ,使用最广泛的TOKEN是JWT,通过签名过的TOKEN。 OAuth2.0 这种方式安全等级最高,但是也是最复杂的。如果不是大型API平台或者需要给第三方APP使用的,没必要整这么复杂。 一般项目中的RESTful API使用JWT来做认证就足够了。 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。 JWT官网:https://jwt.io/ JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串。就像这样: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ JWT的构成 第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature)。 header jwt的头部承载两部分信息: 声明类型,这里是jwt 声明加密的算法 通常直接使用 HMAC SHA256 这里的加密算法是单向函数散列算法,常见的有MD5、SHA、HAMC。这里使用基于密钥的Hash算法HMAC生成散列值。 MD5 message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值 SHA (Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,安全性高于MD5 HMAC (Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。 常用于接口签名验证完整的头部就像下面这样的JSON: { 'typ': 'JWT', 'alg': 'HS256' } 然后将头部进行base64加密(该加密是可以对称解密的),构成了第一部分

浏览