SpringSecurity
2022-08-08 22:17:57 0 举报
AI智能生成
登录查看完整内容
SpringSecurity基础知识及概念
作者其他创作
大纲/内容
微信登录
sina
qq
github
第三登录认证
人脸识别
openAPI
系统与系统之间实现对接
应用场景
1.执行授权
2.同意授权(微信:扫描二维码)
3.返回授权码给客户端(网站)
4.根据授权码换取令牌(accessToken)
5.根据accessToken 获取第三方资源信息(用户头像 用户用户名)
授权码模式(安全 使用频率较高)
微信--QQ
一个公司内容多个系统用户信息共享
密码模式
OAuth2 认证流程
授权端点(返回授权码)
生成token &校验token Token EndPoint
资源端点
SpringSecurity 整合OAuth2
1.Http Basic Auth
2.Cookie(Session)
3.OAuth2
4.Jwt 认证(前后端分离开发 APP开发)
常见认证机制
Header
Payload
加密内容
token签发
token 校验
JJwt
Jwt(Json Web Token)
OAuth2
SpringSecurity
Apache Shiro
分类
认证
授权
解决的两个核心问题
Spring 社区开源子项目
默认存在IOC AOP
基于配置(配置类中配置权限基本操作)
创建Maven 工程
添加启动程序
默认所有资源必须登录后才可访问(user|密码(程序启动生成))
环境搭建
loadUserByUserName
UserDetailsService
用户名
密码
权限
UserDetails(登录用户信息)
encode
matches
PasswordEncoder
API对象
1.实现UserDetailsService接口
2.配置PasswordEncode 接口实现类(SecurityConfig)
自定义登录后端代码实现
1.SecurityConfig 配置类 继承 WebSecurityConfigureAdaptor 重写configure(http)
1.禁用csrf 配置
指定登录页面url(/login.html)
指定处理登录请求的地址(/login)
1.指定跳转的页面(success&failed)
2.指定Handler 处理(success&failed)
指定登录成功||失败跳转处理
1.formLogin()
antMatchers(....).permitAll()
配置放行资源
.anyRequest().authenticated();
配置需要登录才可访问的资源
2.配置访问的资源权限 http.authorizeRequests
2.提供自定义表单配置
2.configure 方法中加入自定义表单配置
自定义表单配置
usernameParameters()
passwordParameter()
form表单name 与自定义表单参数名一致
自定义登录表单参数
error.html
其他配置
自定义登录
?
*
**
ant 表达式
antMatchers(***)
基于正则表达式
regexMatchers(了解)
程序存在上下文路径
mvcMatchers(了解)
.authenticated() 结合使用
anyRequest
访问URL匹配
对匹配的资源放行处理
permitAll(***)
不允许任何用户访问
denyAll()
允许匿名访问
anonymous()
记住我时允许访问
rememberme()
对rememberme() 取反
fullyAuthenticated()
内置访问控制方法
实现AccessDenyHandler 接口
403 没有权限处理
自定义登录逻辑处理
SpringSecurity 入门
permitAll()
hasAuthority
hasRole
hasAnyRole
@id.方法(方法返回boolean)
基于表达式的访问控制(access)
@Secured("Role_xxx")
@PreAuthorize("hasAuthority('')")|| @PreAuthorize("hasAnyAuthority('')") 方法执行前
@PostAuthorize("hasAuthority('')") 方法执行后
基于注解的访问控制
结合SpringSecurity 标签实现页面内容输出(根据用户拥有权限) (菜单、按钮、超链接)
集成Thymeleaf
htpp.rememberme()
1.SpringSecurityConfig
2.form 表单(checkbox name=rememeber-me)
记住我(RememberMe)
1.SpringSecurity 默认开启CSRF
2.登录表单添加隐藏域
预防CSRF跨站请求伪造
权限框架(SpringSecurity-Core)
Spring Security是一个高度自定义的安全框架,利用Spring IOC/AOP功能,为系统提供了声明式安全访问控制系统,减少了为系统安全而编写大量重复代码的工作。
概要
收藏
收藏
0 条评论
回复 删除
下一页