首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
springsecurity专题
SpringSecurity原理解析(一)
一、SpringSecurity 核心组件 在SpringSecurity中的jar包有4个,作用分别为: spring-security-coreSpringSecurity的核心jar包,认证和授权的核心代码都在这里面spring-security-config如果使用Spring Security XML名称空间进行配置或Spring Security的Java confi
阅读更多...
SpringBoot + SpringSecurity 控制授权
授权简介 一般的人会认为,不同的角色登录进同一个系统,根据角色权限的不同,看到的菜单不同就是控制授权。其实并不是的,菜单的是否显示只是前端交互上的一个设计而已,真正需要授权的地方的接口的访问。 普通的系统通常会有两个端,一个是给用户用的业务系统(比如购物商城的买家端),一个是给公司运营人员用的管理端(可以统计销售量,用户量等信息)。 业务端的权限通常比较简单,可以区分为是否登录,或者简单的
阅读更多...
【安全漏洞】SpringBoot + SpringSecurity CORS跨域资源共享配置
SpringBoot CORS跨域资源共享 文章目录 SpringBoot CORS跨域资源共享前言一、什么是CORS?二、配置CORS方法1.nginx中配置跨域资源访问策略2.springSecurity 过滤器链中配置跨域资源访问策略3.springBoot 中配置跨域资源访问策略 总结 前言 一个健壮的系统上线时,以及后续验收过程中,通常都会做系统安全测评,这是
阅读更多...
记一次头疼事故:springSecurity无法重定向到登录页/springSecurity整合layui后,会话丢失,点击选项卡无法定位到登录页。
1、问题概述? 1、springboot工程引入了springSecurity权限框架实现用户登录功能,当刷新浏览器地址栏的时候能够自动的重定向到登录页实现登录。 2、但是项目中使用了layui的选项卡,当会话丢失的时候(或者重启工程后直接访问),选项卡无法回到登录页,而是选项卡中的数据表格报错,具体报错内容如下。 期望:当会话内容丢失,重新展示登录页。 或者 浏览器“控制台”报
阅读更多...
SpringSecurity Oauth2 - 密码模式完成身份认证获取令牌 [自定义UserDetailsService]
文章目录 1. 授权服务器2. 授权类型1. Password (密码模式)2. Refresh Token(刷新令牌)3. Client Credentials(客户端凭证模式) 3. AuthorizationServerConfigurerAdapter4. 自定义 TokenStore 管理令牌1. TokenStore 的作用2. CustomAuthenticationKeyGe
阅读更多...
SpringSecurity Oauth2 - 密码认证获取访问令牌源码分析
文章目录 1. 授权服务器过滤器1. 常用的过滤器2. 工作原理 2. 密码模式获取访问令牌1. 工作流程2. 用户凭证验证1. ResourceOwnerPasswordTokenGranter2. ProviderManager3. CustomAuthProvider4. 认证后的结果 1. 授权服务器过滤器 在Spring Security中,OAuth2授权服务器
阅读更多...
SpringSecurity Oauth2 - 访问令牌续期
文章目录 1. 访问令牌的续期2. CustomUserDetailsService3. 配置 AuthorizationServerEndpointsConfigurer4. 测试项目 1. 访问令牌的续期 在Spring Security OAuth2中,访问令牌的续期通常是通过使用**刷新令牌(Refresh Token)**来实现的。当访问令牌过期时,客户端可以使用之前
阅读更多...
自己开发完整项目一、登录功能-03(使用springSecurity安全框架,查询用户角色权限)
一、说明 在前面两章节,实现了通过springsecurity来进行用的登录认证,当用户输入用户名和密码之后,通过额数据库中的信息比对,比对成功那么放行。但是还存在一个问题:因为系统的所有页面包括按钮都是有各自的权限,那么要想实现不同的用户登录成功看到的页面不同并且有不同的操作范围,那么就需要对用户的权限进行验证。 实现的思路:在用户登录的时候,将用户的权限查询出来。 二、具体实现
阅读更多...
进阶SpringBoot之 SpringSecurity(4)记住我及首页定制
在授权方法里添加 http.rememberMe(),默认保存两周 rememberMeParameter 自定义接受前端参数 //开启记住我功能,本质上是cookie,默认保存两周http.rememberMe().rememberMeParameter("remember"); 开启登录 http.formLogin() loginPage 定制登录页(之前在 controller
阅读更多...
SpringSecurity前后端分离代码
1. 搭建 SpringBoot工程 1) 新建 boot 项目 只要一个 web 依赖 创建好的初始目录,直接将 demos 包删除。 导入依赖 <!-- security --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-securit
阅读更多...
普通项目解决跨域问题和springSecurity解决跨域问题
普通项目解决跨域问题 添加一个配置文件 package com.lzy.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsCo
阅读更多...
Springsecurity 自定义AuthenticationManager
一、认证流程 1、当用户提交了一个他的凭证(用户名、密码) AbstractAuthenticationProcessingFilter 将会创建一个凭证信息,最终,该请求会被UsernamePasswordAuthenticationFilter 拦截将请求中用户名和密码,封装为 Authentication 对象,并交给在UsernamePasswordAuthenticationFil
阅读更多...
进阶SpringBoot之 SpringSecurity(3)注销及权限控制
在授权(HttpSecurity http)方法下开启注销,关闭 CSRF: 跨站请求伪造(CSRF)是一种冒充受信任用户,向服务器发送非预期请求的攻击方式 这些非预期请求可能是通过在跳转链接后的 URL 中加入恶意参数来完成 //防止网站攻击http.csrf().disable(); //关闭csrf功能//开启注销功能,跳转到首页http.logout().logoutSuc
阅读更多...
springsecurity 在web中如何获取用户信息(后端/前端)
一、SecurityContextHolder 是什么 SecurityContextHolder用来获取登录之后用户信息。Spring Security 会将登录用户数据保存在Session中。但是,为了使用方便,Spring Security在此基础上还做了一些改进,其中最主要的一个变化就是线程绑定。当用户登录成功后Spring Security 会将登录成功的用户信息份存到 Sec
阅读更多...
SpringSecurity-重写默认配置
重写UserDetailService组件 1.注入Bean的方式 /*** @author: coffee* @date: 2024/6/22 21:22* @description: 重写springsecurity默认组件:注入Bean的方式*/@Configurationpublic class ProjectConfig {/*** 重写userDetailsService组件
阅读更多...
JSON Web Tokens(JWT)与SpringSecurity如何配合使用?
JSON Web Tokens(JWT)是一种开放标准(RFC 7519),用于在网络应用环境间传递声明(claims)。JWT通常用于身份验证和信息交换,因为它们可以通过数字签名来验证。在Spring Security中,JWT可用于管理用户的认证和授权。 如何在Spring Security中使用JWT 要在Spring Security中使用JWT进行认证流程,你需要按照以下步骤进行:
阅读更多...
【SpringSecurity】认证与鉴权框架SpringSecurity——认证
目录 SpringSecurity介绍特性CSRF攻击攻击模式攻击原理预防手段 XSS攻击攻击模式危害预防手段 SpringSecurity预防CSRF攻击SpringSecurity预防XSS攻击SpringSecurity与OAuth2的关系SpringSecurity的核心功能 代码实战依赖定义一个接口Redis工具类响应类直接运行工具类认证业务密码加密存储问题登录接口认证过滤器退出
阅读更多...
如何在SpringSecurity中配置基于角色的访问控制?
在Spring Security中配置基于角色的访问控制是保护应用程序和资源不被未授权访问的基本策略之一。这里,我们将详细介绍如何在配置中和方法级别上实现基于角色的访问控制。 1. 配置基于角色的访问控制 在Spring Security的配置类中,你可以使用HttpSecurity对象来定义基于角色的访问控制规则。这包括指定哪些角色可以访问应用程序中的特定URL路径。 以下是一个示例配置,
阅读更多...
SpringSecurity实战入门——认证
项目代码 gson/spring-security-demo 简介 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加
阅读更多...
Java17 --- SpringSecurity之OAuth2
一、OAuth2 1.1、使用github以授权码方式 1.1.1、注册应用程序 1.1.2、测试代码 pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency> sp
阅读更多...
Java17 --- SpringSecurity之授权
目录 一、授权 1.1、基于request的授权 1.2、请求未授权处理 1.3、角色分配 1.4、基于方法授权 一、授权 1.1、基于request的授权 @Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {httpSecu
阅读更多...
【第七篇】SpringSecurity核心组件和核心过滤器
一、SpringSecurity中的核心组件 在SpringSecurity中的jar分为4个,作用分别为 jar作用spring-security-coreSpringSecurity的核心jar包,认证和授权的核心代码都在这里面spring-security-config如果使用SpringSecurity XML命名空间进行配置或者SpringSecurity的<br />Java co
阅读更多...
SpringSecurity-6-GrantedAuthority/AccessDeniedHandler接口(权限菜单/权限接口/权限失败后的逻辑)
本文将演示用户1登录之后只能访问test1接口和test3接口,用户2登录之后只能访问test2接口和test3接口,如果user1访问test2接口,那么前端页面上会显示没有权限四个字 本文是与上一篇文章的部分代码强关联的,因为这是一篇系列文章 步骤1: controller代码如下 @RestControllerpublic class AController {// 帐号user1可
阅读更多...
SpringSecurity-5-UserDetailsService与UserDetails接口(用户来源)
欢迎你来看我的SpringSecurity系列文章,因为是系列文章,所以部分文章内容是有承前启后的关系 这个UserDetailsService接口是用户数据的来源,就是登录用户的数据从哪里来,是从数据库来?还是从你电脑的TXT文本上过来的,还是从其他地方,该接口会返回UserDetails接口的实例,而这个UserDetails接口,就是用户信息,因为用户信息除了username,passwo
阅读更多...
SpringSecurity-4-AuthenticationFailureHandler接口(登录失败之后的处理逻辑)
本文演示当使用spring security登录失败之后,在浏览器的页面上显示一个json字符串,内容是{"status","666","message","帐号密码不匹配"} 阅读本文之前如果要想运行的话,则需要先了解之前的文章使用浏览器访问并登录,因为本文涉及到一些HTML页面,如果不需要运行,那么直接看本文就行 首先定义一个往前端输出字符串的类,具备往response写数据的功能,当登录
阅读更多...
SpringSecurity-1-WebSecurityConfigurerAdapter抽象类与环境配置
本系列文章在spring boot下集成spring security,首先,在pom文件中引入依赖,如下 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency> 接下来写一个Controller,里面包
阅读更多...