随笔分类 - spring security
摘要:基于SpringSecurity实现RBAC权限控制 mapper package com.po.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.po.domain.Permission; impo
阅读全文
摘要:RBAC权限模型的数据库设计 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50540 Source Host : local
阅读全文
摘要:我们开发一个系统,必然面临权限控制的问题,即不同的用户具有不同的访问、操作、数据权限。 RBAC权限模型简介RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制。模型中有几个关键的术语: 某用户是什么角色?某角色具有什么权限?通过角色的权限推导用户的权限RBA
阅读全文
摘要:基于自定义Bean权限控制 在Web 安全表达式中引用自定义Bean授权1)定义自定义授权类 package com.po.service.impl; import org.springframework.security.core.Authentication; import org.spring
阅读全文
摘要:基于Method安全表达式 针对方法级别的访问控制比较复杂, spring security 提供了4种注解分别是@PreAuthorize , @PostAuthorize ,@PreFilter , @PostFilter。1)开启方法级别的注解配置在security配置类中添加注解 /** *
阅读全文
摘要:基于url安全表达式 基于web访问使用表达式保护url请求路径。1) 设置url访问权限 SecurityConfiguration // 设置/user/** 访问需要ADMIN角色 http.authorizeRequests().antMatchers("/user/**").hasRole
阅读全文
摘要:在第二部分中我们讲解的都是用户认证, 不管是用户名密码,还是图形验证码等,最终的目的都是一个:让系统知道你到底是谁在访问你的系统, 解决的问题是, 你是谁? 这部分主要讲解你能在系统中做什么事情, 针对这个有的叫做: 授权, 有的叫做:鉴权, 还有叫权限控制. 最终的目的就是你能在系统中能过做什么?
阅读全文
摘要:Spring Security可以与Spring Session库配合使用,只需要做一些简单的配置就可以实现一些功能,如(会话过期、一个账号只能同时在线一个、集群session等)。1)配置session会话超时时间,默认为30分钟,但是Spring Boot中的会话超时时间至少为60秒。 #ses
阅读全文
摘要:图形验证码 图形验证码一般是防止恶意,人眼看起来都费劲,何况是机器。不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰, 也有目前需要手动滑动的图形验证码. 这种可以有专门去做的第三方平台. 比如极验
阅读全文
摘要:退出登录 org.springframework.security.web.authentication.logout.LogoutFilter 匹配URL为/logout的请求,实现用户退出,清除认证信息。 只需要发送请求,请求路径为/logout即可, 当然这个路径也可以自行在配置类中自行指
阅读全文
摘要:自定义登录成功处理和失败处理 在某些场景下,用户登录成功或者数失败的情况下用户需要执行一些后续操作,比如登录日志搜集,或者在现在目前前后端分离的情况下,用户登录成功和失败后需要给前台页面返回对应的错误信息,有前台主导成功或者失败的页面跳转,这个时候需要用到 AuthenticationSucessH
阅读全文
摘要:remember me功能 在大多数网站中,都会实现 Remember Me 这个功能,方便用户在下一次登录时直接登录,避免再次输入用户名以及密码去登录,Spring Security针对这个功能已经帮助我们实现,如下图: Token=MD5(username+分隔符+expiryTime+分隔符+
阅读全文
摘要:获取当前登录用户 传统web系统中,我们将登陆成功的用户放入session中,在需要的时候,可以从session中获取用户,那么spring Security中我们可以从以下两个类获得当前已经登录的用户 SecurityContextHolder 保留系统当前的安全上下文 SecurityConte
阅读全文
摘要:spring-security基于数据库实现认证功能 之前我们所使用的用户名和密码是来源于框架自动生成的, 现在我们需要实现基于数据库中的用户名和密码功能,首先得需要实现security的一个UserDetailsService 接口, 重写这个接口里面 loadUserByUsername; pa
阅读全文
摘要:spring-security自定义表单登录页面 在config包下编写SecurityConfiguration配置类 package com.po.config; import org.springframework.context.annotation.Configuration; impor
阅读全文
摘要:spring-security认证基本原理与认证两种方式 在已导入的工程中添加spring-security的依赖 <!-- 引入spring security--> <dependency> <groupId>org.springframework.boot</groupId> <artifact
阅读全文
摘要:spring security框架功能简介认证:用户登录,解决的是“你是谁”授权:判断用户拥有什么权限 可以访问什么资源 解决的是你能干什么防护:防止跨站请求 session攻击等单一登录(一个账号只能同一时间在一个地方登录)集成cas <?xml version="1.0" encoding="U
阅读全文