# hello-springsecurity
**Repository Path**: wpt191/hello-springsecurity-jsp
## Basic Information
- **Project Name**: hello-springsecurity
- **Description**: 深度理解springsecurity
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-13
- **Last Updated**: 2024-09-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SpringSecurity理解与实战
认证和授权
认证:用户名和密码的校验
授权:用户名--角色role--权限(菜单)
本地认证和对接统一认证中心
本地认证:基于数据库存储密码,然后进行比对
统一认证中心:也就是oauth2,如微信、githup等等,以githup为例,跳转指定githup指定链接,然后验证githup用户名和密码,成功后调用回调地址(提前配置好或者请求url携带),客户端解析header头信息,获取登录成功的token数据(一般是加密的,需要本地用公钥解析)
对接SpringSecurity主体框架
> 最关键的就是一个AuthenticationProvider,此类将作为调度中心完成用户信息查询和校验
* 用户信息加载:implements UserDetailsService,实现用户查询逻辑
* 密码bean:自定义或者用BCryptPasswordEncoder
* 用户实体:implements UserDetails,重载其中的方法
* extends AbstractUserDetailsAuthenticationProvider,调度
* extends WebSecurityConfigurerAdapter,实现基本配置
集成remember-me
* 前端界面定义remember-me一般是复选框,勾选就是ture,将元素名称定义成remember-me,后续框架会自动获取
* 定义一个rememberMeService单例,用TokenBasedRememberMeServices即可,指定一个密钥key和userDetailService实体(该实体用于获取密码,备用情况在)
* 登录成功后,注入该bean,调用loginSuccess,失败则调用loginFail