
我要编程系列-Spring框架专题
文章平均质量分 77
本专题基于Spring框架稳定版本5.X,从Spring5框架基础部分讲起,由浅入深,内容涵盖Spring5基础知识、IOC容器、AOP、JdbcTemplate、事务、Spring5新功能等。c从基础入手一直讲解到Spring的注解开发,源码剖析。了解Spring底层原理,助你在工作中一臂之力!
源码小哥
这个作者很懒,什么都没留下…
展开
-
SpringBoot热启动
在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-boot-devtools,使我们在更改应用和配置文件的时候,自动重启应用!1.打开pom.xml文件添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp原创 2022-03-10 11:40:36 · 361 阅读 · 0 评论 -
spring security4.2 配置CSRF防御场景
文章目录1.首先,确保在springSecurity.xml里没有把csrf关掉,即配置文件中不要出现以下代码:2.一般form表单3.对于Ajax和JSON请求4.上传文件,Multipart1.首先,确保在springSecurity.xml里没有把csrf关掉,即配置文件中不要出现以下代码:<security:http> <!--如果需要使用csrf,请注释下行配置--> <security:csrf disabled="true"/><原创 2022-03-02 08:56:49 · 460 阅读 · 0 评论 -
SpringBoot2+SpringSecurity+CAS整合认证
文章目录1.前言2.pom.xml3. application.yml4. 创建配置类,映射yml中的变量5. 创建CasUserDetailService6. 创建cas 配置类7.最后一步,配置一个测试控制器8.最最后一步,实践检验真理的最后一步9. 结束语1.前言下面SpringBoot2+SpringSecurity+CAS 安全认证整合项目2.pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="ht原创 2021-10-06 12:27:31 · 514 阅读 · 0 评论 -
Java安全框架-Springboot整合JWT
文章目录1.JWT案列使用1.1.pom.xml 导入依赖1.2.生成token1.3.验证token1.4.常见的异常2.Springboot整合JWT2.1.封装JWT工具类2.2.导入依赖2.3.appliaction.properties2.4.数据库配置2.5.Dao层2.6.UserDaoMapper.xml2.7.Service层2.8. Controller层2.9 使用拦截器进行优化2.10 添加自定义拦截器到项目中2.11. 登录页面2.12. 首页页面1.JWT案列使用1.1.po原创 2021-09-19 16:07:41 · 275 阅读 · 0 评论 -
Java安全框架-JWT
1.为什么需要JWT?1.1.传统的Session认证1.1.1.认证方式Http协议本身是一种无状态的协议, 而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发出的请求,所以为了让我们的应用能识别是哪个用户发出的请求,我们只能在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就能识别请求来自哪个用户原创 2021-09-17 18:05:10 · 257 阅读 · 0 评论 -
SpringBoot整合SpringSecurity
文章目录1.环境准备1.1.创建SpringBoot项目1.2.导入基础依赖1.3.创建controller1.4.访问请求2.初步整合2.1.导入SpringSecurityjar包2.2.再次访问3.自定义登录界面3.1.整合模板引擎3.2.提供SpringSecurity配置类3.2.3.启动服务测试4.使用数据库认证4.1.SpringDataJPA整合4.1.1导入相关的依赖4.1.2.数据库相关信息配置4.1.3.pojo处理4.1.4.接口定义4.2.SpringSecurity配置4.2.1原创 2021-09-09 16:39:57 · 252 阅读 · 0 评论 -
SpringSecurity不允许在frame中展示的问题
异常问题Refused to display 'http://localhost:8080/xxx' in a frame because it set 'X-Frame-Options' to 'DENY'Spring Security4默认是将’X-Frame-Options’ 设置为 ‘DENY’ 所以重新配置下SpringSecurity, 在<http>标签内添加配置:<headers> <frame-options policy="SAMEORIGI原创 2021-09-04 11:34:18 · 396 阅读 · 0 评论 -
CSRF攻击
文章目录1.CSRF是什么2.CSRF可以做什么3.CSRF漏洞现状4.CSRF的原理5.CSRF示例5.1.示例1:5.2.示例2:5.3.示例3:5.4.总结6.CSRF的防御6.1. 尽量使用POST,限制GET6.2.浏览器Cookie策略6.3.加验证码6.4.Referer Check6.5.Anti CSRF Token6.6.总结1.CSRF是什么CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/sess原创 2021-09-02 12:03:16 · 210 阅读 · 0 评论 -
SpringSecurity工作原理概要
1.SpringSecurity过滤器链SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的各个进行说明:过滤器名作用WebAsyncManagerIntegrationFilter将 Security 上下文与 Spring Web 中用于处理异步请求映射的 WebAsyncManager 进行集成。SecurityContextPersistenceFilter在每次请求处理之前将该请求相关的安全上下文信息加载到 Secu原创 2021-09-02 11:26:32 · 197 阅读 · 0 评论 -
《SpringSecurity框架专题》-09RBAC权限管理模型
文章目录1.什么是RBAC权限管理模型2.RBAC权限管理系统1.什么是RBAC权限管理模型我们在做任何一款产品的时候,或多或少都会涉及到用户和权限的问题。譬如,做企业类软件,不同部门、不同职位的人的权限是不同的;做论坛类产品的时候,版主和访客权限也是不一样的;再例如一款产品的收费用户和免费用户权限也是迥然不同的。但在设计产品的用户和权限的关系的时候,很多产品经理可能按照感觉来,在并不清楚用户和权限是否存在优秀的理论模型的时候,就按照自我推理搭建了产品的用户和权限模型。而这种基于感觉和推理的模型肯定是原创 2021-08-28 11:14:16 · 338 阅读 · 0 评论 -
《SpringSecurity框架专题》-08授权管理
文章目录1.注解操作1.1.开启授权的注解支持1.2.在注解支持对应类或者方法上添加注解1.3.权限异常处理2.标签操作权限管理的两大核心是:认证和授权,前面我们已经介绍完了认证的内容,本文就给大家来介绍下SpringSecurity的授权管理。1.注解操作我们在控制器或者service中实现授权操作比较理想的方式就是通过相应的注解来实现。SpringSecurity可以通过注解的方式来控制类或者方法的访问权限。注解需要对应的注解支持,若注解放在controller类中,对应注解支持应该放在mvc配置原创 2021-08-28 10:46:25 · 183 阅读 · 0 评论 -
《SpringSecurity框架专题》-07自定义加密
文章目录1.MD5加密工具类2.自定义加密器3.修改 security 配置文件虽然 spring security 已经提供了比较完善的加密机制,但是有时根据业务需求需要定制自己的加密方式。spring security 提供了加密扩充的接口,下文主要介绍如何在 spring security 中添加自定义的加密器。1.MD5加密工具类package com.bruce.utils;import java.security.MessageDigest;/** * @program: St原创 2021-08-27 17:28:05 · 489 阅读 · 0 评论 -
《SpringSecurity框架专题》-06验证码认证
文章目录1.验证码流程2.验证码生成3.前端验部分的代码4.验证码校验1.验证码流程验证码流程图解析:客户端打开登陆页的时候就要发送一个生成图片验证码的请求服务端接受请求,就要随机生成验证码图片,将图片验证码响应给前端页面,并且要将生成的验证码保存到session中,以便登录验证校验客户端收到验证码图片后,填入表单信息后,发送登录请求服务端在接受到前端传来的验证码参数,要先与session中的比对,如果相同,则响应正确,如果不匹配,则返回相应错误信息,如验证码不匹配2.验证码生成pac原创 2021-08-27 15:09:20 · 195 阅读 · 0 评论 -
《SpringSecurity框架专题》-05数据库认证
文章目录1.mybatis准备1.1.导入相关依赖1.2.配置文件1.3.Mybatis的配置文件1.4.和spring的整合文件1.5.pojo文件1.6.dao接口1.7.映射文件1.8.service2.service修改2.1.UserService继承UserDetailService接口2.2.重写loadUserByusername方法3.配置文件修改4.登录测试5.加密处理6.认证状态判断上篇文章我们介绍了SpringSecurity系统认证的流程,我们发现系统认证其实是通过一个UserD原创 2021-08-26 22:21:43 · 154 阅读 · 0 评论 -
《SpringSecurity框架专题》-04认证流程分析
文章目录1.UsernamePasswordAuthenticationFilter1.1.表单提交参数1.2.doFilter方法2.认证的过程我们前面实现了使用自定义认证界面的功能,但是后台认证校验还是使用的’/login’来处理的,对比的账号密码还是我们写在内存的数据,那我们如果想要实现和数据库中的数据比较,那么我们就必须要实现自定义认证逻辑的实现,本文我们就先来分析下系统自带的认证是怎么走的。1.UsernamePasswordAuthenticationFilter系统认证是通过Userna原创 2021-08-26 21:04:22 · 147 阅读 · 0 评论 -
《SpringSecurity框架专题》-03实现自定义登录界面
前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用自定义的登录界面,本文我们就来介绍下如何实现该操作。注意:本文是在入门案例代码的基础上演示的!1.页面准备我们准备如下相关的jsp页面1.1.login.jsp页面<%-- Created by IntelliJ IDEA. User: dengp Date: 2019/12/1 Time:原创 2021-08-26 20:34:17 · 215 阅读 · 0 评论 -
《SpringSecurity框架专题》-02常用过滤器
文章目录1.常见的过滤器1.1.SecurityContextPersistenceFilter1.2.WebAsyncManagerIntegrationFilter1.3.HeaderWriterFilter1.4.CsrfFilter1.5.LogoutFilter1.6.UsernamePasswordAuthenticationFilter1.6.DefaultLoginPageGeneratingFilter1.8.DefaultLogoutPageGeneratingFilter1.9.Bas原创 2021-08-26 17:53:09 · 693 阅读 · 0 评论 -
《SpringSecurity框架专题》-01基础入门
文章目录1、安全框架概述2、常用安全框架2、Spring Security 概述2.1.概述2.2.核心功能2.3.历史3、初识Spring Security3.1.Spring Security概念3.2. 快速入门案例3.3. 环境准备3.3.1 创建web项目3.3.2 导入相关的依赖3.3.3.创建相关配置文件3.3.4.web.xml设置3.4. SpringSecurity整合3.4.1.相关jar作用介绍3.4.2.过滤器配置3.4.3.SpringSecurity配置文件设置3.4.4.导入原创 2021-08-11 13:12:18 · 274 阅读 · 0 评论 -
Spring框架专题(五)-Spring框架之Proxy代理
文章目录1.引言2.代理模式3.静态代理4.使用JDK动态代理5.使用CGLIB动态代理6.JDK和CGLIB动态代理总结6.1.原理区别6.2.CGlib比JDK快?6.3.各自局限:7. 总结1.引言动态代理在 Java 中有着广泛的应用,比如 AOP 的实现原理、RPC远程调用、Java 注解对象获取、日志框架、全局性异常处理、事务处理等。在了解动态代理前,我们需要先了解一下什么是代理模式。2.代理模式代理模式(Proxy Pattern)是 23 种设计模式的一种,属于结构型模式。他指的是原创 2020-12-29 17:54:55 · 331 阅读 · 0 评论 -
Spring框架专题(四)-Spring框架之IOC实操
文章目录1.引言2.准备代码与环境2.1.添加必要的依赖2.2.创建账户表以及实体2.3.创建Service以及Dao3.XML配置方式3.1.Set方式3.2.构造函数方式3.3.测试代码3.4.执行效果4.注解配置方式4.1.改造原程序为注解配置4.2.常用注解5.XML和注解的对比与选择5.1.优缺点5.2.两者对比6.补充新注解6.1.配置类注解6.2.指定扫描包注解6.3.创建对象6.4.配置 properties文件6.5.导入其他配置类7.注解获取容器8.Spring单元测试改进1.引言前原创 2020-12-29 15:42:24 · 254 阅读 · 0 评论 -
Spring框架专题(三)-Spring框架之DI依赖注入
1.前言控制反转(IoC)是一种思想,而依赖注入(Dependency Injection)则是实现这种思想的方法其实泛概念上两者是接近的,可以简单的理解为一个概念的不同角度描述我们前面写程序的时候,通过控制反转,使得 Spring 可以创建对象,这样减低了耦合性,但是每个类或模块之间的依赖是不可能完全消失的,而这种依赖关系,我们可以完全交给 spring 来维护。2.注入分类bean 实例在调用无参构造器创建对象后,就要对 bean 对象的属性进行初始化。初始化是由容器自动完成的,称为注入。根原创 2020-12-29 12:05:19 · 289 阅读 · 0 评论 -
Spring框架专题(二)-Spring框架之IoC控制反转
1.IOC概述控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理。IoC 是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式是依赖注入。应用广泛。依赖:classA 类中含有 classB 的实例,在 classA 中调用 classB 的方法完成功能,即原创 2020-12-29 10:26:38 · 359 阅读 · 0 评论 -
Spring框架专题(一)-Spring概述
1.Spring框架是什么Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情原创 2020-12-28 15:58:08 · 468 阅读 · 1 评论