
springsecurity
文章平均质量分 67
从入门到工作
一写代码就开心
一起学编程呀,头秃的那种。
学完之后,找一份java,python开发的工作不成问题
展开
-
shiro笔记(十)springboot 项目整合shiro框架,注册登录使用的加密算法
目录背景shiro的认证实现注册登录背景在实现认证的时候,shiro有很多的加密算法,比如md5,SHA-1等。我们现在自己写一个工具类,里面是SHA-1的加密,有盐的加密。我们数据库中保存的是加密的密码。在注册的时候,我们就可以将前段传过来的密码,作为参数传给工具类的entryptPassword()方法,返回的就是加密后的密码,和一个盐,之后把密码和盐都保存到数据库里面package com.jing.utils;import com.sun.org.apache.bcel.interna原创 2021-08-09 22:36:05 · 372 阅读 · 0 评论 -
shiro笔记(九)springboot 项目整合shiro框架,实现的详细步骤(一步一步整合,拿上用就可以)
目录具体功能:使用shiro框架实现登录功能,这个登录功能有记住我功能,加密密码验证功能。不同用户权限不一样,看到的东西不一样。从数据库里面查询出来的权限放到缓冲里面。1 首先创建一个springboot的maven项目2 导入依赖 <!--配置继承--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp原创 2021-08-07 17:04:51 · 315 阅读 · 0 评论 -
shiro笔记(八)springboot 整合shiro框架,使用这个ehcache缓冲技术
目录ehcache简介为什么使用这个ehcache技术代码实现添加依赖写ehcache的配置文件ehcache简介EHCache是sourceforge的开源缓存项目,现已经具有独立官网,网址:(http://www.ehcache.org)。其本身是纯JAVA实现的,所以可以和绝大多数Java项目无缝整合,例如:Hibernate的缓存就是基于EHCache实现的。EHCache支持内存和磁盘缓存,默认是存储在内存中的,当内存不够时允许把缓存数据同步到磁盘中,所以不需要担心内存不够问题。EHCac原创 2021-08-07 16:55:49 · 472 阅读 · 0 评论 -
shiro笔记(七)springboot 整合shiro框架,实现授权功能,Thymeleaf整合shiro和注解控制权限
目录回顾授权Thymeleaf整合shiro在realm里面写一个授权的方法写页面thymeleaf中常用属性在java代码中通过注解@RequiresXXX回顾之前有ini文件的时候,我们的授权是在ini文件里面书写的,现在权限是在数据库里面,那么就需要在realm里面自己写授权的代码了,因为要操作数据库授权授权就是判断认证用户是否具有指定角色或指定权限。Shiro可以和JSP整合也可以和Thymeleaf整合,我们讲解SpringBoot的视图技术Thymeleaf整合Shiro。只要是授权原创 2021-08-07 16:29:11 · 431 阅读 · 0 评论 -
shiro笔记(六)springboot 整合shiro框架,实现退出功能
目录退出1修改配置类2修改主页面退出退出之后,将session销毁,将记住我的功能也要销毁1修改配置类修改ShiroConfig类,添加logout filter 对应的url。红色部分为新增内容。也就是shiro有一个过滤器就是专门做退出功能的,我们要配置哪些路径需要退出就可以了2修改主页面...原创 2021-08-07 15:34:06 · 403 阅读 · 0 评论 -
shiro笔记(五)springboot 整合shiro框架,实现加密登录功能,并且实现remeberme功能
目录回顾不使用shiro框架实现登录(SSM)搭建项目整合shiro框架实现登录(SSM)回顾之前的maven项目,里面使用shiro进行验证,并且自定义了认证规则,里面我们还需要自己写ini文件,在这个ini文件里面进行shiro的配置,比如配置加密规则,配置自定义的认证规则。反正还需要自己写ini文件shiro笔记(四)shiro框架实现自定义Realm,加密之后进行验证的流程不使用shiro框架实现登录(SSM)搭建项目创建一个maven项目添加依赖 <!--配置继承-原创 2021-08-07 15:27:37 · 574 阅读 · 0 评论 -
shiro笔记(四)shiro框架实现自定义Realm,加密之后进行验证的流程
目录回顾自己写一个认证规则解释以上代码将认证规则配置到shiro里面凭证匹配器1修改自定义Realm2修改配置文件总结回顾第一个shiro项目,里面的realm是框架自带的,原数据是ini文件里面的,也就是之前认证的时候,shiro框架会自己用默认的认证规则到ini文件里面进行认证。现在想要自己改认证的数据源,那么就需要自己写认证规则自己写一个认证规则/** * * 自定义的认证规则 */public class MyRealm extends AuthenticatingRealm {原创 2021-08-06 15:26:02 · 531 阅读 · 0 评论 -
shiro笔记(三)maven项目集成shiro的第一个项目,实现认证和判断权限;加密及凭证匹配器
目录搭建maven项目框架Shiro是不依赖于容器的,所以建立一个普通的Maven项目就可以。搭建maven项目框架以上是刚创建的maven项目架构以下导入shiro依赖 <dependencies> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifac原创 2021-08-06 10:57:10 · 1539 阅读 · 1 评论 -
shiro笔记(二)INI文件介绍,以及使用shiro实现认证流程
目录INI文件介绍INI文件中包含了四个部分1[main] 主体部分.2[users]3[roles]4[urls]认证流程INI文件介绍INI英文名称(InitializationFile)INI文件是Window系统配置文件的扩展名.Shiro的全局配置文件就是.ini文件,ini中数据都是固定数据,后面会用数据库中数据替代下面users和roles(固定数据部分).ini文件内容的语法和.properties类似都是key=value,value格式.INI文件中包含了四个部分1[mai原创 2021-08-02 21:34:28 · 416 阅读 · 0 评论 -
shiro笔记(一)shiro是什么,他的架构原理是什么,实现流程是什么
目录前提Shiro 简介Shiro官方解释核心功能Shiro 架构原理1第一行2Subject3Security Manager4Authenticator5Authorizer6Session Manager7Cache Manager8Session DAO9Realms解释以上的图shiro实现的流程前提Java代码+ rbac 的数据库思想就可以实现不同角色,实现不同功能Shiro 简介目前市场上专门的Java权限框架有Apache Shiro 和 Spring Security。相较于原创 2021-08-02 21:02:54 · 350 阅读 · 0 评论 -
springboot整合springsecurity框架,重新创建子项目,看能不能携带token访问成功(分布式项目)(八)
因为是分布式的项目,现在我们再创建一个模块,这个模块和之前的差不多,但是将认证的相关的删除,因为认证是只是在一个子模块里面,只有一个服务器上面进行认证,其他的服务器上面就是验证,所以其他不管写多少个子模块,都是只是写和验证相关的代码。也就是在以后其他的模块里面,只是重写验证的过滤器重新启动这个项目,端口是9002,我们可以认为这个重写的子模块是在其他的服务器上面,现在我们以端口号的不同来区分是不同的服务器9002端口的项目,也是可以访问的,原因就是在访问的时候携带了token那么以后只要访问不同原创 2020-10-15 15:11:19 · 398 阅读 · 0 评论 -
springboot整合springsecurity框架,将自定义的过滤器配置到我们的项目里面,并且启动项目,测试功能(分布式项目)(七)
之前我们已经重写了springsecurity框架的认证的过滤器,还有验证的过滤器,但是只是写了个过滤器,还没有配置到项目里面,所以不起作用,那么如何将我们重写的过滤器配置到项目里面呢?配置新的过滤器的流程也就是在这个配置里面配置我们自定义的过滤器 //SpringSecurity配置信息 public void configure(HttpSecurity http) throws Exception { http.csrf() .disab原创 2020-10-15 14:57:02 · 776 阅读 · 0 评论 -
springboot整合springsecurity框架,重写验证的过滤器(分布式项目)(六)
根据以上的步骤,用户登录成功之后,已经拿到了对应的token。那么之后用户就可以拿这个token到各个服务器了,但是各个服务器是如何判断验证是哪个用户的么?也就是各个服务器是如何验证这个token的。重写验证的过滤器之前的springsecurity框架自己验证的时候,是有一个过滤器BasicAuthenticationFilter既然现在我们认证的代码已经重写了,所以验证的也要重写自己写一个过滤器,继承BasicAuthenticationFilter,重写里面的验证的方法doFilterInte原创 2020-10-15 14:09:23 · 2015 阅读 · 0 评论 -
springboot整合springsecurity框架,代码生成token返回给用户(提供源码)(分布式项目)(五)
在这个分布式的项目里面,已经集成了生成公钥和私钥的代码。之前我们利用springsecurity框架进行验证,认证和检验都是springsecurity框架自己做的,我们只需要简单的配置就可以实现功能。但是之前的项目是集成项目,只是在一个服务器上面,现在是分布式的项目,需要很多的服务器,项目分为很多的模块,不同的模块是在不同 的服务器上面。所以我们不能使用springsecurity框架自己的认证规则了,我们需要修改,springsecurity框架底层是过滤器,所以我们要重写人间的过滤器,写自己的认证规原创 2020-10-15 11:17:12 · 1554 阅读 · 0 评论 -
springboot整合springsecurity框架,在项目里面集成生成公钥和私钥的代码(分布式项目)(四)
之前我们已经可以使用工具类生成公钥和私钥了。因为我们现在的项目是分布式的项目,所以重新创建一个子项目,在这个子项目里面写我们生成token的代码以下就是生成的子项目先添加依赖 <parent> <artifactId>springboot_security_jwt_rsa_parent</artifactId> <groupId>com.itheima</groupId> <versi原创 2020-10-15 10:29:44 · 1070 阅读 · 0 评论 -
springboot整合springsecurity框架,根据工具类生成的公钥和私钥(分布式项目)(三)
创建springboot的分布式的项目导入依赖这里先导入3个依赖,这个是JWT的依赖,这个从JWT的官网上面找到的 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.10.7</version>原创 2020-10-15 09:54:24 · 710 阅读 · 0 评论 -
springboot整合springsecurity框架,什么是JWT,分析如何实现单点登录(分布式项目)(二)
什么是JWT从分布式认证流程中,我们不难发现,这中间起最关键作用的就是token,token的安全与否,直接关系到系统的健壮性,这里我们选择使用JWT来实现token的生成和校验。JWT,全称JSON Web Token,官网地址https://jwt.io,是一款出色的分布式身份校验方案。可以生成token,也可以解析检验token。JWT生成的token由三部分组成:头部:主要设置一些规范信息,签名部分的编码格式就在头部中声明。载荷:token中存放有效信息的部分,比如用户名,用户角色,过期时原创 2020-10-14 17:12:01 · 551 阅读 · 0 评论 -
springboot整合springsecurity框架,什么是单点登录,用什么技术可以实现单点登录(分布式项目)(一)
什么是分布式项目分布式,就是将一个大的项目,分为不同的业务,每一个业务都在不同的服务器上面,之前做的集中式的项目,就是在一个服务器上面,现在是在不同的服务器上面,所以通俗点说这就是分布式。什么是单点登录因为已经是分布式的项目了,各个业务在不同的服务器上面,我们登录之后,在一个服务器上面保存了当前的用户的session信息,但是要访问其他的服务器上面的业务的时候,我们不能重新登录吧?所以就需要单点登录这个功能,一次登录,多个服务器上面随意的访问,这个就是单点登录。分布式认证,即我们常说的单点登录,简称原创 2020-10-14 16:15:40 · 1111 阅读 · 0 评论 -
springboot整合springsecurity框架,开启授权,并且实现不同的用户有不同的权限,实现权限不足跳转到自定义的页面(集中式项目)(三)
不同的用户实现不同的权限,在后端进行控制在之前的ssm项目里面,我们开启授权的配置代码是因为我们要在项目里面使用授权的注解,这个默认是关闭的,之前我们在springmvc的配置里面进行开启,现在我们在springboot项目里面开启的方法是在配置类上写这个注解EnableGlobalMethodSecurity以上就开启了,之后我们就可以在controller和业务层写注解进行权限的控制了。权限不足之后,实现跳转到自定义的页面回顾之前我们咋处理的只要写以上的就可以实现现在的是spri原创 2020-10-14 15:33:35 · 880 阅读 · 1 评论 -
springboot整合springsecurity框架,整合jsp页面,并且让项目识别jsp页面,数据源配置为数据库,完成连接数据库的认证操作(集中式项目)(二)
在springboot项目里面,一般是不建议使用jsp页面的,但是还是可以使用的,我们通过springboot的启动类进行启动项目,是不识别jsp页面的,所以不同通过启动类进行启动,现在我们要使用其他的方法1 导入一个启动插件的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte原创 2020-10-14 15:21:15 · 533 阅读 · 2 评论 -
springboot整合springsecurity框架,项目架构的搭建 ,集成springsecurity框架(集中式项目)(一)
1 创建项目,导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath/> 写上这个就是在原创 2020-10-14 13:51:40 · 363 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,权限不足之后,跳转到自定义的异常页面(十四)
之前我们已经配置了权限,但是当权限不足之后,跳转的是默认的403的页面,这个页面不好看,所以,现在我们要跳转到自定义的权限不足的页面。具体流程如下1 先写一个权限不足的页面2 在配置文件里面配置这个配置处理的只是403的异常,其他的不能处理以上配置之后,重新启动项目,只要访问权限不足的页面,那么就会跳转到我们自己写的403的页面处理全部的异常(第一个方式)之前的配置只是处理403的异常,但是一个项目有很多的异常,比如403 500 等其他的,现在我们想要都有一个自定义的处理,如何写呢原创 2020-10-14 10:58:04 · 391 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,利用注解控制权限(十三)
之前的我们实现了不同的用户登录之后,可以查看不同的菜单,这个控制是在前段页面使用springsecurity框架的标签进行限制的。现在我们还有另外的方法,那就是在controller层或者service层用注解进行控制,也就是写了注解之后,只有对应的权限才可以访问这个接口,没有的话就不走这个接口,也就走不到后面的业务层,这样就实现了控制。也就是之前前端的控制只是视觉上面不显示,如果知道了路径还是可以访问对应的接口的。现在要做的就是视觉上面不显示,我后端也要进行控制,你知道了路径也不行,只要对应的用户没有权原创 2020-10-14 10:27:10 · 236 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,项目中springioc容器的结构,也就是项目中有多少个容器,各个容器有什么关系(十二)
我们可以将我们的项目当做一个父容器,就是tomcat这个容器,我们的项目可以在tomcat服务器上面进行启动,所以可以将我们的项目当做一个父容器,这个父容器里面还有一个容器,那就是springioc的容器可以理解为以上的这个就是子容器,也就是第二个容器以后其他的容器要放在第二个容器里面,比如springmvc的容器如何放,就是在第二个容器里面加载这个容器我们只能访问子容器也就是在浏览器输入地址之后,我们直接就到controller层,直接就到了子容器里面...原创 2020-10-14 09:41:52 · 293 阅读 · 1 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,不同的用户显示不同的菜单(十一)
每一个项目的左边都有很多的按钮,现在我们要实现的就是不同的用户登录之后,可以看到不同的菜单。一般 一点击左边的菜单,右边就会显示对应菜单的页面思路在左边菜单的每一个标签上面写权限用框架的标签进行限制,就是有这个权限就显示,没有就不显示<ul class="treeview-menu"> <security:authorize access="hasAnyRole('ROLE_PRODUCT', 'ROLE_ADMIN')">.原创 2020-10-13 18:08:52 · 615 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,实现页面显示登录的用户名(十)
我们一般在登录成功之后,就跳转到了首页,在首页的头部会显示登录用户的用户名,那么这个咋实现呢?实现因为有这个框架的标签库,所以使用标签库就可以实现这个用户名的显示在页面上面导入标签的规则 <span class="hidden-xs"> <%--<security:authentication property="principal.username" />--%> <security:authentication property="原创 2020-10-13 15:09:05 · 311 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,实现记住我的功能(实现流程)(九)
前面已经分析的源码,现在开始说使用流程1 前端按照人家框架的原则进行书写name值必须是那个,value的值必须是源码里面的那几个,现在是选择了true<div class="col-xs-8"> <div class="checkbox icheck"> <label><input type="checkbox" name="remember-me" value="true"> 记住 下次自动登录</label>原创 2020-10-13 14:45:56 · 191 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,实现记住我的功能(原理分析)(八)
这个记住我的功能是springsecurity框架提供的,我们拿过来用就可以了。原理只要你点了记住我的按钮,在传到后端的时候,springsecurity框架就会接受到对应的信息,之后在跳转到首页的时候,就会给浏览器返回此时登录的用户的信息,也就是在浏览器保存一个cookie信息,以后登录的时候就是携带cookie信息进行登录源码分析我们找到登录的源码以下就是框架的登录的源码,这个里面做的就是认证,但是认证之前我们已经学过,所以现在要看这个源码里面关于记住我的那部分就可以了。这个 记住我 的源原创 2020-10-13 14:25:34 · 207 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,实现有的用户可以登录,有的不可以(七)
之前我们已经自定义了认证的规则,并且实现了用户的登录,跳转到了首页但是有一个问题,那就是我想要在首页显示用户名,也就是不同的人登录以后,首页就显示不同人的名字,数据库现在有3个人,每个人的状态也是不一样的,1 代表可以使用这个用户进行登录,0 代表这个用户不能使用了,表示删除了。现在想要实现的就是有的用户可以登录,有的不可以,并且首页显示登录用户的名字实现有的用户可以登录,有的不可以这个就在代码里面判断用户在数据库里面的status的字段。我们因为已经自定义了登录的认证,所以在自定义的登录认证原创 2020-10-13 11:09:06 · 200 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,认证密码加密的介绍(提供源码)(六)
springsecurity框架里面的密码必须是加密的,当我们的前端将用户名和密码传到后端的时候,这个密码就会被框架加密,这个加密的工具springsecurity框架给提供了很多,我们可以选择使用,一般我们用这个加密对象进行加密记住,现在我们选择这个框架里面的BCryptPasswordEncoder这个加密对象。那么既然我们在测试类里面知道了这个加密的对象,他如何在我们的项目里面集成呢?也就是如何将这个对象放到我们的项目里面呢?之前我们已经在springsecurity.xml里面已经引入过这个加原创 2020-10-13 10:16:23 · 262 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,认证流程源码分析和自定义的认证(提供源码)(五)
之前我们将用户名密码写在了配置文件里面,真正开发的时候,用户名密码是在数据库中的。还有就是在点击登录之后,验证用户名和密码是不是正确,这个是框架自己验证的,我们都不知道人家咋认证的,我们需要做的就是一个配置,我们当初做的就是,前端这样写配置文件这样写这样这个路径login ,我们只要配置了这个login路径,那么就可以自动的验证。底层验证,我们不知道。问题现在我们将用户名密码保存在数据库,而不是配置文件中,这个咋验证分析人家的验证代码过滤器里面进行验证的过滤器在这个地方找和验证相关原创 2020-10-13 09:51:30 · 198 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,csrf配置和注销功能(四)
之前已经自定义登录页面了,可是我们在写了用户名密码之后,跳转的页面是报错的,为什么。我们看人家默认的登录页面,里面有个隐藏的input标签,里面写的是关于csrf 的东西,我们自己写的登录页面是没有的,所以我们现在需要处理这个,要么自己的登录页面也和默认的一样,写一个这个csrf,要么取消这个csrf的认证。两个我们都试一试。取消csrf只需要在springsecurity的配置文件里面配置一下就可以取消了自己登录页面,写一个csrf要使用这个,不要在配置文件里面写取消的配置,之后在自定义的登原创 2020-10-10 15:47:24 · 293 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,在ssm项目里面,自定义登录的页面(三)
之前配置之后已经启动项目,可以看到默认的登录的页面,可是现在要我们自己的登录页面,这个咋配置呢?在springsecurity.xml里面进行配置 <!--配置认证信息--> <security:form-login login-page="/login.jsp" 这个是我们自己写的jsp页面 浏览器访问login,那么就会跳转到login.jsp页面原创 2020-10-10 15:14:41 · 263 阅读 · 0 评论 -
springsecurity框架的学习,根据操作修改后台ssm项目进行学习,依赖的导入和配置(二)
springsecurity框架所需要的jar包介绍就是我们的项目里面要使用这个springsecurity框架,我们需要导入什么jar包?spring-security-core.jar核心包,任何Spring Security功能都需要此包。spring-security-web.jarweb工程必备,包含过滤器和相关的Web安全基础结构代码。spring-security-config.jar用于解析xml配置文件,用到Spring Security的xml配置文件的就要用到此包。sp原创 2020-10-10 14:44:02 · 374 阅读 · 0 评论 -
Spring Security的配置文件是如何被项目引入的,也就是有了springsecurity.xml ,还需要什么配置,项目就可以使用这个springsecurity.xml了
之前我们创建了项目,导入了springsecurity的依赖,在web.xml里面写了SpringSecurity核心过滤器链之后写了springsecurity的xml配置文件这样启动项目,这个springsecurity框架就可以在项目里面生效了么?不能原因是项目一启动,就会加载web.xml里面的东西,这个web.xml里面配置的是SpringSecurity核心过滤器链,自己写的springsecurity.xml 这个也没有被加载啊,这个只是在项目里面写了这个springsecuri原创 2020-10-10 13:49:02 · 541 阅读 · 2 评论 -
springsecurity框架的学习,根据操作修改后台项目进行学习,项目搭建和springsecurity简单入门(一)
1 将一个简单的后台的项目在idea里面导入,这个项目里面是没有安全相关的东西的,我们现在需要做的就是在这个项目里面,集成springsecurity框架,让这个项目有了安全认证的功能以上就是这个项目,这个是原生的项目,里面什么安全的框架都没有数据库里面也导入了项目原始的架构是修改这个项目的数据源,变为自己的数据库以上的这个项目就和自己本地的数据库连接起来了。我们启动之后,在浏览器看见的就是直接就登录到后台了,这个是不好的,现在我们需要做的就是用springsecurity框架修改这原创 2020-10-10 10:55:29 · 276 阅读 · 0 评论