# 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