自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(345)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring Cloud Gateway系列【11】网关管理API

文章目录前言管理API1. 查询所有路由2. 查询过滤器3. 刷新路由缓存4. 查询单个路由信息5. 创建和删除路由前言Spring Cloud Gateway 提供了很多API 用来管理网关,在org.springframework.cloud.gateway.actuate包中,可以看到提供了一些访问API。管理API需要配置spring-boot-starter-actuator,公开这些访问端点,首先添加Pom: <dependency>

2021-12-03 18:48:49 107

原创 Spring Cloud Gateway系列【10】 配置Gateway详解

配置Spring Cloud Gateway 的配置由RouteDefinitionLocator实例集合驱动。以下清单显示了RouteDefinitionLocator接口的定义:例 63.RouteDefinitionLocator.javapublic interface RouteDefinitionLocator {Flux getRouteDefinitions();}默认情况下,aPropertiesRouteDefinitionLocator使用 Spring Boot 的@.

2021-12-03 17:53:31 95

原创 Spring Cloud Gateway系列【9】 配置SSL证书提供Https访问方式

TLS 和 SSL网关可以通过遵循通常的 Spring 服务器配置来侦听 HTTPS 上的请求。以下示例显示了如何执行此操作:例 59.application.ymlserver:ssl:enabled: truekey-alias: scgkey-store-password: scg1234key-store: classpath:scg-keystore.p12key-store-type: PKCS12您可以将网关路由路由到 HTTP 和 HTTPS 后端。如果您要路由到 HT.

2021-12-03 16:33:04 4

原创 Spring Cloud Gateway系列【8】基于注册中心Nacos的动态路由案例及加载执行流程源码分析

前言动态路由其实就是面向服务的路由,Spring Cloud Gateway支持与Eureka 整合开发,根据serviceld自动从注册中心获取服务地址并转发请求,这样做的好处不仅可以通过单个端点来访问应用的所有服务,而且在添加或移除服务实例时不用修改Gateway的路由配置。实现案例...

2021-12-02 16:32:32 322

原创 Spring Cloud Gateway系列【7】自定义过滤器

自定义网关过滤器需求:编写一个网关过滤器,实现打印请求URI。方式1 继承AbstractGatewayFilterFactory1. 继承抽象类仿照默认的网关过滤器,实现一个简单打印请求路径和过滤器配置参数的功能。@Slf4j@Componentpublic class RequestLogGatewayFilterFactory extends AbstractGatewayFilterFactory<AbstractGatewayFilterFactory.NameConfig&

2021-12-02 12:05:11 137

原创 Spring Cloud Gateway系列【6】GlobalFilter全局过滤器详解

前言GlobalFilter是应用于所有路由的特殊过滤器。GlobalFilter接口的实现类如下图所示:每个类的说明如下:当请求与路由匹配时,Web 处理程序会将所有的GlobalFilter和特定的GatewayFilter添加到过滤器链中。这个组合过滤器链是按org.springframework.core.Ordered接口排序的,也通过实现getOrder()方法来设置。默认全局过滤器ForwardRoutingFilterForwardRoutingFilter在ServerW

2021-12-02 11:59:44 90

原创 Spring Cloud Gateway系列【5】GatewayFilter网关过滤器详解

前言Spring Cloud Gateway 中的 fFilter分为两种类型,分别是Gateway Filter和Global Filter。过滤器将会对请求和响应进行处理.。比如添加参数、URL重写等。可以看到GatewayFilter 有很多实现类,这是 Spring Cloud Gateway已经提供了的,使用的时候只需要在yml中配置即可。常用网关过滤器Spring Cloud Gateway 定义的网关过滤器还是看类名就能见名知意。AddRequestHeaderAddReque

2021-12-01 22:25:07 284

原创 Spring Cloud Gateway系列【4】初始化加载流程源码解析

文章目录核心源码Route类AsyncPredicate接口ServerWebExchange 接口GatewayFilterRouteLocatorRouteDefinitionLocator接口RouteDefinition 类初始化加载流程1. 路由构建方式2. 加载配置3. 加载PropertiesRouteDefinitionLocator4. 加载RouteDefinitionRouteLocator5. 加载HandlerMapping、WebHandler5. 启动服务参考文档核心源码R

2021-12-01 18:25:21 80

原创 Spring Cloud Gateway系列【3】路由断言工厂(路由匹配规则)详解

RoutePredicateFactory在上篇的入门案例中,我们使用 Path 实现了一个简单的针对请求路径的请求规则,在编写路由时,需要配置id、uri、predicates。Spring Cloud Gateway 创建 Route对象时,使用RoutePredicateFactory 创建 Predicate对象,Predicate对象可以赋值给Route,Spring Cloud Gateway包含许多内置的 Route Predicate Factories:所有这些断言都匹配 HT

2021-12-01 11:41:15 291

原创 Spring Cloud Gateway系列【2】网关工作原理及入门案例

工作原理核心概念路由(Route):路由是网关最基础的部分,路由信息由ID、目标URl、一组断言和一组过滤器组成。如果断言路由为真,则说明请求的URI和配置匹配。断言(Predicate) : Java8中的断言函数。Spring Cloud Gateway 中的断言函数输入类型是Spring 5.0框架中的ServerWebExchange。Spring Cloud Gateway 中的断言函数允许开发者去定义匹配来自于Http Request中的任何信息,比加如请求头和参数等。过滤器(Filte

2021-12-01 11:04:07 243

原创 Spring Cloud Gateway系列【1】API网关概述

API网关概念功能常用网关

2021-12-01 10:07:18 590

原创 Spring Security系列(33)- Spring Security Oauth2之授权页面源码分析及使用详解

前言之前分析了auth_client_details 表scope、resource_ids、authorities这些字段,最后分析下autoapprove 这个是干嘛的。配置autoapprove为true首先我们配置autoApprove为true。然后采用授权码进行访问,发现没有跳出授权页面,那么配置autoapprove为true 时,表示会自动授权,不会弹出授权页面。配置autoapprove scope...

2021-11-29 11:41:05 272

原创 Spring Security系列(32)- Spring Security Oauth2之authorities授权使用详解及源码分析

前言在oauth_client_details表中,有一个authorities字段,从字面上来看是授权的意思,在之前我们分析了可以通过resourceId和scope进行授权,那么这个authorities授权又是什么东东呢,接下来简单分析下。流程分析1. 授权服务器添加authorities首先给当前客户端添加一个权限值。2. 获取令牌并访问资源服务器可以看到,authorities也会存在在用户信息中。那么应该想到,这和scope差不多,也是可以通过表达式进行授权的。接着我们在方法

2021-11-26 17:33:02 353

原创 Spring Security系列(31)- Spring Security Oauth2之scope作用域机制使用详解

OAuth 2.0协议 关于Scope的说明概念Scope是 OAuth 2.0 中的一种机制,用于限制应用程序对用户帐户的访问。应用程序可以请求一个或多个范围,然后该信息会在同意屏幕中呈现给用户,并且颁发给应用程序的访问令牌将仅限于授予的范围。OAuth 规范允许授权服务器或用户根据请求修改授予应用程序的范围,尽管在实践中这样做的服务示例并不多。OAuth 没有为范围定义任何特定值,因为它高度依赖于服务的内部架构和需求。GitHub 文档描述通过作用域,您可以准确指定所需的访问权限类型。 作用

2021-11-26 11:16:24 311

原创 Spring Security系列(30)- Spring Security Oauth2之resourceId使用详解及源码解析

前言在oauth_client_details(Oauth2 客户端信息)表中,有一个resource_ids字段,这个字段是干嘛的呢?作用resource_ids字段表示资源服务器id集合,也就是表示当前客户端可以访问哪些资源服务器。如果设置了客户端的resourceId,就表示只能访问这些resourceId标识的资源服务器,可以达到资源服务服务级别的访问控制,之前我们没有设置资源ID,默认为空时不会校验,也就是没有配置时可以访问所有的资源服务器。案例演示1. 设置资源服务器resour

2021-11-23 21:49:21 857 1

原创 Spring Security系列(29)- Spring Security Oauth2之DefaultTokenServices源码解析及使用详解

DefaultTokenServices源码解析DefaultTokenServices是默认的令牌服务类,其实现了以下四个接口:public class DefaultTokenServices implements AuthorizationServerTokenServices, ResourceServerTokenServices, ConsumerTokenServices, InitializingBean 这些接口的主要作用如下:AuthorizationServerToke

2021-11-18 17:54:45 1768

原创 Spring Security系列(28)- Spring Security Oauth2之自定义获取令牌端点

前言Spring Security Oauth2提供了默认的令牌访问端点,如果某些业务场景下,我们需要修改这些端点,应该怎么做呢?修改默认端点路径Spring Security Oauth2支持修改访问路径,如果使用默认的访问路径,可能存在安全问题,因为大家都知道这个地址。我们可以将默认的访问路径修改为自定义路径,比如将/oauth/token 修改为/custom/token。直接在AuthorizationServerEndpointsConfigurer配置中添加路径就可以了: @O

2021-11-18 15:55:34 385

原创 Spring Security系列(27)- Spring Security Oauth2之令牌过期和续签问题解决方案(1)

Spring Security Oauth2 令牌机制Spring Security Oauth2利用令牌机制来实现认证授权及单点登录,获取到令牌后,携带令牌访问资源服务器,资源服务器针对每次访问,都会用令牌去查询认证信息,然后设置到线程SecurityContextHolder中,后续操作都会获取到用户信息,简单流程入下图所示:令牌过期问题问题在之前,我们分析过,申请到的令牌都是具有过期时间的,在返回的令牌是有字段显示其多久后会过期,单位为秒而这个过期时间,默认是无法修改的,如果用户一直在操

2021-11-17 11:11:20 598

原创 Spring Security系列(26)-Spring Security Oauth2之使用令牌增强器TokenEnhancer添加额外信息源码分析及案例

前言在之前的案例中,认证获取到了访问令牌信息,但是这些信息完全不够,比如没有登录用户名,如果还需要添加其他额外信息应该怎么做呢?源码分析创建令牌之前我们分析过,DefaultTokenServices在其createAccessToken方法中会进行令牌的创建和存储。 private OAuth2AccessToken createAccessToken(OAuth2Authentication authentication, OAuth2RefreshToken refreshToken) {

2021-11-15 10:52:05 518

原创 Spring Security系列(25)-Spring Security Oauth2之RedisTokenStore使用详解及源码分析

前言在上篇文档我们分析了Security登录后将用户信息保存在Session中,用户访问时,会获取Session中的数据绑定到ThreadLocal中。在Oauth2颁发令牌端点源码解析我们分析了在Spring Security oauth2中,是使用授权模式去获取令牌,而令牌的对应信息是保存在了TokenStore中。在Oauth2授权服务之令牌管理源码分析及使用JWT令牌案例中,分析了TokenStore及如何使用JWT令牌,但是也发现JWT令牌存在诸多问题。所以接下来了解下如何使用Redis

2021-11-12 14:04:06 2637

原创 Spring Security系列(24)- SecurityContext源码解析

前言在Security中,登录以后,我们可以通过以下代码获取当前用户的认证信息: SecurityContext context = SecurityContextHolder.getContext(); Authentication authentication = context.getAuthentication();在Authentication 中,包含了用户信息、账号状态、拥有的权限等信息:在获取用户信息的代码中,通过SecurityContextHol

2021-11-11 16:09:17 2332

原创 Mybatis-Plus入门系列(18) -基于注解的动态数据权限实现方案

数据权限简介前言一般的系统都离不开权限模块,它是支撑整个系统运行的基础模块。而根据项目类型和需求的不同,权限模块的设计更是大相径庭。但不管怎么变,权限模块从大的方面来说,可以分为三种大的类型:功能权限、接口权限、数据权限。功能权限:也就是我们最熟悉的菜单、按钮权限。可以配置各个角色能看到的菜单、按钮从而从最表层分配好权限接口权限:顾名思义,配置不通角色调用接口的权限。有些敏感接口,是只能有固定的一些角色才能调用,普通角色是不能调用的。这种情况需要有一个明确的系统来控制对应的访问权限数据权限:是大家

2021-11-09 17:54:02 203

原创 JSqlParser入门系列(5)-JSqlParser之SelectBody

SelectBody接口Select对象在之前的案例中,我们尝试解析了各种SQL语句,比如以下代码,将一个查询语句解析为了Select对象: String SQL002 = "SELECT t1.a , t1.b FROM tab1 AS t1 JOIN tab2 t2 ON t1.user_id = t2.user_id"; // 多表SQL // 1. Select select = (Select) CCJSqlParserUtil.par

2021-11-08 17:46:00 246

原创 MyBatis入门系列(26) -MyBatis-Spring-Boot-Starter入门案例

前言mybatis除了继承了Spring以外,还集成了Spring Boot的自动配置及自动装配,开发更加简化。MyBatis-Spring-Boot-Starter 帮助您在Spring Boot之上快速构建 MyBatis 应用程序。通过使用此模块,您将实现:构建独立的应用程序将样板文件减少到几乎为零更少的 XML 配置要求MyBatis-Spring-Boot-Starter 需要以下版本:入门案例首先使用Spring Initializr创建一个Spring Boot We

2021-11-01 15:22:21 44

原创 MyBatis入门系列(25) -MyBatis-Spring核心之@MapperScan使用及源码分析

注册映射器在使用Mybatis中,我们需要将Mapper接口注册到Spring中,这叫注册映射器。注册映射器的方法根据你的配置方法,即经典的 XML 配置或新的 3.0 以上版本的 Java 配置(也就是常说的 @Configuration),而有所不同。XML 配置在你的 XML 中加入 MapperFactoryBean 以便将映射器注册到 Spring 中。就像下面一样:<bean id="userMapper" class="org.mybatis.spring.mapper.Map

2021-11-01 14:06:42 32

原创 MyBatis入门系列(24) -MyBatis-Spring核心类之SqlSessionTemplate、SqlSessionDaoSupport

前言在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。 一旦你获得一个 session 之后,你可以使用它来执行映射了的语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 session。 使用 MyBatis-Spring 之后,你不再需要直接使用 SqlSessionFactory 了,因为你的 bean 可以被注入一个线程安全的 SqlSession,它能基于 Spring 的事务配置来自动提交、回滚、关闭 session。SqlSess

2021-11-01 11:01:30 9

原创 MyBatis入门系列(23) -MyBatis-Spring核心之事务管理器

Spring 事务MyBatis-Spring允许 MyBatis 参与到 Spring 的事务管理中。而不是给 MyBatis 创建一个新的专用事务管理器,MyBatis-Spring 借助了 Spring 中的 DataSourceTransactionManager 来实现事务管理。一旦配置好了 Spring 的事务管理器,你就可以在 Spring 中按你平时的方式来配置事务。并且支持 @Transactional 注解和 AOP 风格的配置。在事务处理期间,一个单独的 SqlSession 对象

2021-11-01 10:58:02 32

原创 MyBatis入门系列(22) -MyBatis-Spring核心源码解析之SqlSessionFactoryBean

前言在之前使用了mybatis的文档中,我们需要手动创建SqlSessionFactory对象来获取SqlSession,然后通过SqlSession获取mapper代理对象,进行数据库操作。 // 根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); Sql

2021-11-01 10:47:27 19

原创 MyBatis入门系列(21) -MyBatis-Spring入门案例

来自于官方文档简介MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。版本匹配MyBatis-Spring 需要以下版本:入

2021-11-01 10:19:17 8

原创 Minio入门系列【16】Minio分片上传文件putObject接口流程源码分析

前言为了更好的理解和优化Minio文件上传,本篇文档对MInio中上传文件putObject接口源码分析以下。基于Java 客户端 APIController层上传文件接口: @PostMapping("/upload") @ResponseBody public Object upload(MultipartFile file, String bucketName) throws IOException { return minioTemplate.putOb

2021-10-26 16:59:14 613

原创 Minio入门系列【15】WebUploader上传文件的高级用法之进度条显示、文件过滤、图片预览、图片压缩

深入了解请参考官网详细说明进度条显示使用进程文件上传时,进度条显示是一个常用的功能,而WebUploader组件也是支持的。文件上传中,Web Uploader会对外派送uploadProgress事件,其中包含文件对象和该文件当前上传进度。我们这里只需要在JS中添加以上事件就可以了。 // 文件上传过程中创建进度条实时显示。 uploader.on('uploadProgress', function (file, percentage) { let $li = $

2021-10-25 22:29:30 147

原创 Minio入门系列【14】开源前端上传文件组件Uppy、filepond、dropzone介绍及入门案例

前言在之前我们使用了WebUploader进行上传文件,这是百度开发的,但是自2014年之后就没发布新版本了,所以研究了下其他开源的Web组件,界面更好看,功能更枪法。下面列举几种并入门体验下,实际使用可以参照。UppyGitHub地址官方文档简介Uppy 是一款时尚的模块化 JavaScript 文件上传器,可与任何应用程序无缝集成。它速度快,具有易于理解的 API。从本地磁盘、远程 URL、Google Drive、Dropbox、Box、Instagram获取文件或使用相机拍摄和记录自

2021-10-25 14:12:57 73

原创 Minio入门系列【13】使用WebUploader上传文件到Minio服务器

前言在之前介绍了Minio常用功能,以及如何使用JAVA SDK集成Minio,但是没有涉及到前端应该怎么做,接下来介绍如何使用Web组件集成Minio进行文件处理。WebUploader(摘自官网)1. 简介WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时

2021-10-24 22:18:22 147

原创 Minio入门系列【12】Spring Boot集成Minio

前言之前介绍了如何使用Minio提供的JAVA SDK进行上传和下载文件,在此基础上,我们可以使用spring boot集成Minio JAVA SDK,添加自动配置、装配、客户端管理等功能,简化开发。Spring Boot集成Minio1. 环境搭建首先我们搭建一个spring boot基础工程,引入以下依赖 <dependencies> <dependency> <groupId>org.springframew

2021-10-23 14:38:46 144

原创 Minio入门系列【11】多版本功能使用详解

前言使用场景利用多版本控制,您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。默认情况下,新创建的桶不会开启多版本功能,向同一个桶上传同名的对象时,新上传的对象将覆盖原有的对象。多版本控制版本说明:版本描述最新版本多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。历史版本多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。除最后一

2021-10-20 16:44:36 188 2

原创 Minio入门系列【10】Minio之权限控制策略

前言本段文章来源于华为云OBS,因为都是S3标准的对象存储,所以很多概念和Minio是相通的。为什么要进行访问权限控制(华为OBS)为保证存储在SSO中数据的安全性,SSO资源(桶和对象)默认为私有,只有资源拥有者可以访问。如果要允许他人访问和使用自己的SSO资源,可以设置访问权限控制策略,向他人授予指定资源的特定权限。访问权限控制的典型场景(华为OBS)OBS如何进行访问权限控制(华为云)OBS提供丰富灵活的访问权限控制手段,满足不同场景下的授权需求。IAM用户权限控制相对比阿

2021-10-20 11:30:21 603

原创 Minio入门系列【9】JAVA集成Minio之对象操作API使用详解

上传对象1. PutObject调用PutObject接口上传文件(Object)。public ObjectWriteResponse putObject(PutObjectArgs args)注意事项:添加的Object大小不能超过5 GB。默认情况下,如果已存在同名Object且对该Object有访问权限,则新添加的Object将覆盖原有的Object,并返回200 OK。OSS没有文件夹的概念,所有资源都是以文件来存储,但您可以通过创建一个以正斜线(/)结尾,大小为0的Object

2021-10-19 19:19:20 359 1

原创 Minio入门系列【8】JAVA集成Minio之存储桶操作API使用详解

前言多种SDK官方文档minio-javaMinio 提供了多种语言的SDK,比如java、go、python等。JAVA开发平台可以选择JS和java SDK,也就是前端和后端都可以直接集成minio。技术方案每个OSS的用户都会用到上传服务。Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS。具体流程如下图所示。和数据直传到OSS相比,以上方法有三个缺点:上传慢:用户数据需先上传到应用服务器,之后再上传到OSS。网络传输时间比直传到O

2021-10-19 16:32:30 413

原创 Minio入门系列【7】对象存储 OSS概述

对象存储 OSS文档来源于阿里云对象存储 OSS,Minio也是对象存储 OSS,很多概念都是相通的,所以了解下。实际企业应用使用阿里OSS是一个很不错的选择。对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于9

2021-10-19 09:31:49 133

原创 Minio入门系列【6】MinIO Admin 使用详解

概述MinIO Client(mc)提供了“ admin”子命令来对您的MinIO部署执行管理任务。service 服务重启并停止所有MinIO服务器update 更新更新所有MinIO服务器info 信息显示MinIO服务器信息user 用户管理用户group 小组管理小组policy MinIO服务器中定义的策略管理策略config 配置管理MinIO服务器配置heal 修复MinIO服务器上的

2021-10-18 11:30:28 216

jekins汉化插件.zip

jekins汉化插件j

2020-03-24

gcc离线安装包.rar

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。) GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由

2020-01-20

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除