自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Cas单点登录客户端源码解析

本篇文章注重cas客户端源码的解析,如果有项目需要集成第三方的cas服务器,那么可以深入的了解cas客户端的代码,熟悉之后,不仅集成,扩展也会变得简单,相信会有进步。

2023-07-17 16:59:10 1185

原创 springsecurity oauth2使用jwt实现单点登录

在如今前后端分离架构越来越成为开发的主流模式,因此以前基于session的权限管理已经不适合前后端分离架构了,springsecurityoauth2的出现帮我们解决了这个问题。本文采用springsecurityoauth2+jwt实现单点登录,适合前后端分离的项目。...

2022-07-15 09:32:55 949 1

原创 Cas单点登录集成前后端分离项目

文章目录前言一、整合前后端分离遇到的问题二、CAS整合前后端分离项目实战第一步、引入CAS客户端依赖第二步、编写Cas经典拦截器的配置类第三步、编写一个CasController,专门负责Cas的业务第四步、进行完整测试单点退出功能总结前言    现在由于单点登录的普及,Cas和Oauth2都能完成,最简单的方法是将Cas的依赖导入后,添加上Cas的过滤器,当用户访问系统时就会被拦截,然后就可以重定向到SSO单点登录界面进行单点登录了,登录完成后就会将用户信息.

2021-11-24 16:02:42 6974 3

原创 springsecurity使用redis实现单点登录

文章目录前言一、oauth2认证的4种模式的选择二、认证服务器的编写二、测试认证服务器的功能三.认证服务器也可以是资源服务器四. 编写学生资源服务器五.编写老师资源服务器总结前言本文采用springsecurity oauth2 + redis实现单点登录,现在如果想要使用springsecurity实现单点登录的话,比较流行的方法是使用jwt方式来实现,虽然jwt优点很多,本身就能携带很多信息,但它是无状态的,服务端不用保存它的信息,这样就有一个问题,一旦jwt的token发送到用户手中,那么只要.

2021-10-22 16:53:14 5473 1

原创 springsecurity的退出登录/注销流程

文章目录前言一、LogoutFilter中的doFilter方法二、doFilter方法中的this.handler.logout(request, response, auth)方法1.第一个Logout类PersistentTokenBasedRememberMeServices2.第二个Logout类SecurityContextLogoutHandler3.第三个Logout类SecurityContextLogoutHandler三、doFilter方法中的logoutSuccessHandle.

2021-09-23 15:04:55 2423

原创 springsecurity的表单认证流程

文章目录前言查看顺序:1,AbstractAuthenticationProcessingFilter抽象类的doFilter方法查看顺序:9,AbstractAuthenticationProcessingFilter抽象类的successfulAuthentication(request, response, chain, authResult);方法查看顺序:2,UsernamePasswordAuthenticationFilter类中的attemptAuthentication(request,.

2021-09-23 13:40:56 337

原创 对springSecurity的remember-me功能的思考

文章目录思考一、remember-me功能源码解析二、从源码看出的问题三、尝试解决问题思考如果使用过springsecurity的记住我功能就知道,其实用户每一次上线都会刷新一次最后登录时间,那么如果将过期时间设置为7天的话,只要用户在7天内再次登录,那么后面的7天时间又不用再登录了,就会无限循环下去。但有第二种场景,规定7天内免登录,只要过了7天时间就一定需要再次登录,结合springSecurity的remember-me记住我功能源码分析,下文就是对这一场景的思考。一、remember-m.

2021-09-22 17:46:42 407

原创 在springboot中舒适地使用RabbitMQ

想要了解springboot中怎么使用RabbitMQ,关键是知道springboot提供的RabbitAutoConfiguration自动配置类中配置了哪些RabbitMQ的组件到spring容器中。查看发现其中自动配置了ConnectionFactory,RabbitTemplate和AmqpAdmin这三个关键组件。最简单的配置文件application.properties#rabbitmq配置spring.rabbitmq.host=192.168.228.138spring.rabbi

2021-08-24 00:31:55 1078

原创 spring与mybatis的整合思路

要将spring和mybatis整合,我们可以从mybatis的核心对象看起,以前想要使用mybatis,都需要创建出mybatis的核心对象才能实现,而spring是工厂管理,因此只需要将mybatis的核心对象交给spring来管理,我们便完成了整合。那么mybatis中的核心对象有哪些呢,康康以下代码就知道了。 InputStream stream = Resources.getResourceAsStream("mybatis-config.xml"); // 得到

2020-12-06 20:11:21 566

原创 spring中的AOP编程

通知(Advice): 除了目标方法以外的操作都称之为通知切入点(PointCut): 要为哪些类中的哪些方法加入通知切面(Aspect): 通知 + 切入点

2020-12-03 17:42:08 162

原创 spring中的JdbcTemplate的使用方法

在没有使用mybatis框架之前,通常是用原始的方法编写持久层代码,但即便有jdbcutil工具类,开发效率也非常的低,那么spring为我们提供了JdbcTemplate类,能快速的开发持久层的代码,它位于spring-jdbc模块中,和DB-util中的queryrunner有异曲同工之妙。第一步,获取JdbcTemplate对象想要使用JdbcTemplate对象,首先要进行获取,获取它有两种方式,一种是通过编写JDBC工具类来获取,第二种方法是通过spring工厂管理它,然后在获取,实现了IOC

2020-12-02 17:30:40 591

原创 spring对象的创建和属性的注入

spring有两大特性,分别是IOC(inverse of controller) 和 DI(Dependency Inject) 。IoC又叫依赖注入(DI)。它描述了对象的定义和依赖的一个过程,也就是说,依赖的对象通过构造参数、工厂方法参数或者属性注入,当对象实例化后依赖的对象才被创建,当创建bean后容器注入这些依赖对象。这个过程基本上是反向的,因此命名为控制反转(IoC),它通过直接使用构造类来控制实例化,或者定义它们之间的依赖关系,或者类似于服务定位模式的一种机制。在spring中,对象的创建

2020-11-27 20:30:18 306

原创 spring与mybatis的整合

关于spring与mybatis的整合,总所周知,spring是管理组件的创建,使用和删除的,那么当spring与mybatis进行整合时,则需要将mybatis的核心对象交给spring进行管理,包括SqlsessionFactory、Sqlsession等。 这样做的好处是不需要在编写mybatis-config.xml配置文件,简化了开发。1. 首先需要引入依赖spring依赖 mybatis依赖 mybatis-spring依赖 mysql依赖 druid依赖2. 编写sprin...

2020-11-27 16:11:56 347

原创 寻找数组中的第K个最大元素

题目来自leetcode的215道题,寻找数组中的第K个最大值,如果要寻找一个数组的最大值,可能很简单,但是寻找第K个最大值,可能就不是那么简单了,当然这道题目有多个解法第一种解法,排序法,想要找到第K大的元素,比较好的方法可能是排序法,经过排序的数组可以直接通过索引找到第K个值,这个值自然就是数组中第K大的值在这个数组中,如果要寻找第2大的值,那么结果就是5在这道题中,可以采用各种排序法,例如归并排序和快速排序等,很明显算法的时间复杂度是O(nlogn)那么通过排序就能完成这道题目了第二种解法

2020-11-11 19:37:42 3355

原创 div鼠标悬停效果样式

分享一个css鼠标悬停div的阴影效果鼠标未悬停时鼠标悬停后css代码.类名:hover { background-color: rgba(76, 201, 240, 1); -webkit-box-shadow: 10px 10px 99px 6px rgba(76, 201, 240, 1); -moz-box-shadow: 10px 10px 99px 6px rgba(76, 201, 240, 1);

2020-11-08 22:56:58 1645

原创 restTemplate+ribbin的使用

众所周知,如果要进行服务间的调用,我们可以选择restTemplate+ribbin的方式或者openfeign的方式来实现,这次来说一下restTemplate+ribbin该如何使用其中restTemplate是由spring框架提供的,没有负载均衡的功能,而ribbin则可以提供负载均衡的功能1.使用restTemplate直接调用import org.springframework.web.client.RestTemplate;//1.使用resttemplate方式直接调用

2020-09-06 14:57:17 158

原创 java清除字符串空格

在java中,如果想要清除字符串的空格有两种情况1.清除字符串中的所有空格可以采用string类中的replace方法public String trimAllWhitespace(String str){ return str.replace(" ", ""); }2.清除字符串前后空格的方法可以采用String类中的trim方法或者自定义方法public String trimBeforeAndAfterWhitespace(String str){

2020-08-19 16:26:22 233

原创 ik分词器下载慢问题

如果想要下载ik分词器,正常是访问github官网下载:https://github.com/medcl/elasticsearch-analysis-ik/releases但是往往会出现下载慢的问题,如果想快速下载可以使用迅雷复制ik分词器的url地址到迅雷处,可以修改url的版本https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zi

2020-08-14 00:20:31 515

原创 java.lang.NoClassDefFoundError: org/springframework/core/log/LogMessage异常

java.lang.NoClassDefFoundError: org/springframework/core/log/LogMessage异常如果在springboot中引入了devtools依赖,要注意springboot和devtools版本的问题,devtools版本太高会出现这个问题。这里只需要将pom.xml文件中devtools版本更换为Springboot相同的版本即可解决。如果springboot启动控制台由main变为restartedMain即说明成功...

2020-05-31 02:29:58 10450

原创 Springboot快速集成jsp教程

Springboot快速集成jsp教程虽然Springboot不提倡使用jsp页面,但是也是可以用的,只是需要额外的操作罢了。1.使用Spring initializr快速创建一个Springboot项目勾选Spring Web模块,特别注意,Springboot版本选择2.1.X的版本,不然会导致404错误2.创建完项目后,添加pom.xml依赖 <!--内置tomcat对Jsp支持的依赖,用于编译Jsp--> <dependency>

2020-05-30 02:32:36 251 1

原创 java通过栈类实现八进制转换二进制

八进制数转换成二进制原理是将八进制数的每一个位对应三个二进制数,因此把八进制数的每一个位分别去出来和2取余3次得出结果。package 八进制转二进制;import java.util.Scanner;import java.util.Stack;import sun.security.util.Length;public class JZtest { Stack<Integ...

2019-04-08 21:41:19 335

空空如也

空空如也

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

TA关注的人

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