3 我神级欧文

尚未进行身份认证

暂无相关简介

等级
TA的排名 21w+

SpringSecurity OAuth2+JWT+网关实现认证授权中心

之前利用SpringSecurity OAuth2搭建了一个认证服务器,并且结合网关搭建了一个安全认证的架构,而这个架构也是有缺点的,很明显的就是用户的信息是通过加在请求头到微服务去取出来的,这样就会容易泄露用户的信息并且很容易被别人截获请求伪造用户信息,而且网关每一次都要请求认证服务器去验证token是否正确,加重了认证服务器的负担。那么这里我们解决这两个问题用的就是jwt。什么是JWT?...

2020-02-17 20:59:27

SpringSecurity OAuth2搭建微服务安全认证网关

之前我们搭建了一个SpringSecurity OAuth2的入门案例SpringSecurity OAuth2密码模式入门案例在这个案例中我们分别搭建了认证服务器与资源服务器,在请求资源服务器的资源的时候需要在请求头中带上一个token,资源服务器在拿到token之后请求认证服务器去验证token是否正确,验证正确就能允许访问资源服务器的资源。但是在微服务架构下这种模式会导致3个问题:...

2020-02-06 15:26:48

一步步入门搭建SpringSecurity OAuth2(密码模式)

什么是OAuth2?是开放授权的一个标准,旨在让用户允许第三方应用去访问改用户在某服务器中的特定私有资源,而可以不提供其在某服务器的账号密码给到第三方应用大概意思就是比如如果我们的系统的资源是受保护的,其他第三方应用想访问这些受保护的资源就要走OAuth2协议,通常是用在一些授权登录的场景,例如在其他网站上使用QQ,微信登录等。OAuth2中的几个角色用户:使用第三方应用(或...

2020-02-05 19:38:20

Mybatis原理解析(四)--查询流程

前三篇Mybatis的原理解析可以点击链接查看:Mybatis原理解析(一)解析全局xml配置文件生成SqlSessionFactory过程Mybatis原理解析(二)SqlSession的创建过程Mybatis原理解析(三)--getMapper动态获取接口实现类这一篇主要讲的是在前三篇的基础上Mybatis的查询流程(与增删改同理),也是Mybatis中最为核心的知识,话不多说...

2020-01-05 14:56:48

浅谈Mysql底层索引原理

Mysql中一旦数据量上到一定的数量级别就会到达性能上的瓶颈,而我们都知道解决的办法就是加索引,但是至于为什么加索引之后查询的性能就能瞬间提升上去了尼?我想很多人都知其然而不知其所以然,其实这都是与索引的数据结构有关。下面我们就逐渐深入了解下Mysql的索引加速查询的原理。上面说到索引是和其数据结构有关的,那么是什么数据结构尼?我们就当做自己来设计这个数据结构,先从二叉树开始说起。二...

2020-01-05 14:55:25

SpringAOP原理解析

Spring中主要有两大核心模块,其中一个就是AOP(切面编程)。通常我们使用SpringAOP注解版的时候都是定义一个切面类,里面定义好切入点,然后对定义好的切入点可以进行@Before前置通知处理,@After后置通知处理,@AfterReturning返回通知处理,@AfterThrowing异常通知处理,@Around环绕通知处理,最后在配置类上面(或者通常我们在SpringBoot中的...

2019-09-22 21:20:23

Mybatis插件机制原理

在Mybatis中,有一个强大的机制可以让我们快速地侵入到Mybatis的底层操作,从而去扩展Mybatis的功能,这就是插件机制,我们也可以叫作Mybatis的拦截器机制。一.基本原理在Mybatis架构体系中,有着四大组件(对象),分别是Executor,StatementHandler,ParameterHandler,ResultSetHandler。而我们在阅读Mybatis...

2019-08-18 00:01:21

Mybatis原理解析(三)--getMapper动态获取接口实现类

在上一篇中,我们讲述了Mybatis中是如何创建出SqlSession的,知道了在创建SqlSession的过程中Mybatis的底层其实是在帮我们创建了Executor执行器,并且存放在了创建的DefaultSqlSession中,想知道创建DefaultSqlSession过程的朋友可以到Mybatis原理解析(二)SqlSession的创建过程回到这一篇的主题,在我们获取到了带有Ex...

2019-08-13 23:03:40

Mybatis原理解析(二)SqlSession的创建过程

在上一篇中我们一起深入地看了SqlSessionFactory在创建的过程中里面都做了些什么,所以这里我们就接着讲下一步SqlSession的创建。没看上一篇的点这里:Mybatis原理解析(一)解析全局xml配置文件生成SqlSessionFactory首先我们知道了在创建SqlSessionFactory的过程中,其实底层大部分就是在初始化我们的Configuration对象,通过这个...

2019-08-10 23:24:12

Mybatis原理解析(一)解析全局xml配置文件生成SqlSessionFactory过程

在单单使用的Mybatis中我们都是如上图所写的步骤去实现的,那么我们这里就通过源码去看看SqlSessionFactory是怎么创建的吧。源码深入进去之后先是调用了里面的一个builde的重载方法,把我们的全局配置文件的stream传进去,点进去里面是创建了一个XMLConfigBuilder对象,通过名字我们可以知道该对象应该是主要对我们的全局配置文件解析的一个类,那么...

2019-08-10 22:24:29

MYSQL锁机制---MyISAM表锁

对于我们的一个应用来说,并发问题是不可忽视的。其实每一个网站都存在着并发的问题,只是平时这些网站的并发数不够多而显得没有问题罢了。言归正传,mysql作为现在众多网站中使用的数据库之一,当然自己也有一套机制去解决并发问题,那就是锁机制。在mysql中有许多存储引擎,其中InnoDB和MyISAM和我们常用的两大存储引擎。锁机制主要有两大类,一是表锁,二是行锁,而其中MyISAM只支...

2019-08-04 22:15:14

MYSQL索引优化(索引失效场景)

学习mysql是作为一名Java工程师必不可少的事情,但是我们只认识mysql的增删查改建表等等的sql语句其实远远不够的,对于进阶mysql来说,索引是一个很重要的部分。下面我们就来说一下在mysql中索引失效的几种场景吧。首先先来看看测试的表结构dept部门表建立的索引(name,number,comment三个字段的复合索引)测试数据1.遵从最左前缀...

2019-08-02 21:37:14

Java结构型设计模式之装饰者模式

装饰者模式顾名思义就是在一个类对象的基础上再包装一层,使得这个类的功能得以扩展,符合了设计原则中的禁止修改,提倡扩展的开闭原则。说到给类扩展其功能,可能大家也会想到代理模式,代理模式是关注在控制对对象的访问的,而装饰者模式可以动态地给类对象添加若干个功能,装饰者模式能分离出装饰者对于被装饰者的业务逻辑。下面我们来看下实例代码吧这里我们以买煎饼果子为例子吧,比如我们现在要去街边买一个煎饼...

2019-07-05 15:57:50

Java创建型设计模式之简单工厂,工厂方法,抽象工厂

在Java的23中设计模式中,其中有创建型的一类创建模式,通常用来抽象封装创建对象来使用的,这一类创建模式是使得客户端调用者不用关心对象是如何创建,统统交给一个叫做“工厂”的对象来创建对应的对象。这样就能做到客户端不与想要创建的对象紧密地耦合,降低耦合度。1.简单工厂简单工厂具体来并不属于Java中的23种设计模式中之一,它只是一种对创建对象的简单的封装,只需要传入一个正确的参数,就...

2019-07-01 21:55:18

spring security执行原理流程

1.基本配置使用(1)创建配置类创建一个配置类SecurityConfig继承自WebSecurityConfigurerAdapter,重写里面的configure(HttpSecurityhttp)这个方法,配置好需要认证的登录url,以及提交表单的url,这里除了登录url不需要认证之外,其他的url都需要认证才能访问,并且formLogin表名这是一个表单提交,loginproc...

2019-06-18 11:40:19

FastDFS搭建文件服务器

一.为什么需要文件服务器?在我们的项目中,文件上传下载(其中包括图片)是经常需要我们去开发的,我们可以根据前端传过来的文件保存到本地服务器中,但是这会导致两个问题,其一,当系统发展到后面,逐渐的单一的服务器支撑不了巨大的访问量,我们就会采用集群分布式的架构方式去搭建我们的服务器环境,当使用这种架构之后原来我们存在我们服务器A中的文件服务器B是没有的,加入nginx负载均衡到服务器B就会加载不出...

2019-05-27 00:03:39

基于JWT的Token认证机制实现

在日常的开发中,常见的认证机制有几种,其中使用token是目前前后端分离项目最受欢迎的一种认证手段。token字面意思为令牌(一串字符串),目的就是客户端在访问服务器时要带上这个令牌,服务器然后去根据这个令牌进行认证是否允许你去访问。这个过程中,服务器时完全没有存储任何关于认证的信息的,因此使用token的认证方式也被称之为无状态的认证方式,而生成token又有很多种方式,比如服务器直接生成一个字...

2019-05-12 00:16:56

Idea搭建SpringCloud(四)------利用Feign实现负载均衡

为什么会出现Feign?负载均衡之前不是有Ribbon了吗?我们之前实现的负载均衡是使用的Ribbon+RestTemplate,在controller中使用RestTemplate根据url去访问服务提供者,而通常我们是在controller中调用我们声明好的service实例去调用我们的逻辑,这样就不符合我们平时面向编程的规范了,所以feign的出现就是解决这个规范问题的。我们还是基于...

2019-04-26 23:56:14

Idea搭建SpringCloud(三)------Ribbon实现负载均衡及其自定义算法策略

SpringCloud中提供了一个组件Ribbon,Spring Cloud Ribbon是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的。对于SpringCloud来说为什么要实现负载均衡?负载均衡对于集群或者是分布式来说都是一种常见的手段用于减轻服务器压力,并不单单针对于微服务,而在另外的一套分布式架构Zookeeper,Dubbo,常用的软负载均...

2019-03-16 17:16:42

Springcould(二)之搭建服务注册中心Eureka集群

为了实现服务注册中心Eureka的高可用,我们通常会把Eureka搭建成一个集群,这样,当一台Eureka宕机后会使得注册进它里面的服务提供者都能正常被访问到,从而实现高可用。上一篇文章中讲述了搭建一个单机版的Eureka,继续上一篇中的工程,新建两个module,eureka-server-7002和eureka-server-7003,修改7001,7002和7003的applicatio...

2019-03-14 23:50:09

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。