# spring-security-study **Repository Path**: xiuyaoyuan/spring-security-study ## Basic Information - **Project Name**: spring-security-study - **Description**: Spring Security + Jwt学习 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-16 - **Last Updated**: 2022-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-security-study ### Spring Security + Jwt遇到的问题记录 #### 1. hibernate需要映射的实体都要加上 @Entity 注解 #### 2. 项目启动出现异常 There is no PasswordEncoder mapped for the id "null";Spring Security5.0之前默认使用的 NoOpPasswordEncoder,在5.0后过时; ``` -- 这样写法在5.0之后会报错 @Bean public PasswordEncoder passwordEncoder(){ return NoOpPasswordEncoder.getInstance(); } -- 修改方案1:指定使用NoOpPasswordEncoder @Bean public NoOpPasswordEncoder passwordEncoder(){ return NoOpPasswordEncoder.getInstance(); } -- 修改方案2:使用DelegatingPasswordEncoder指定defaultPasswordEncoderForMatches @Bean public PasswordEncoder passwordEncoder(){ return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } ``` #### 3. 项目启动,登录后没有任何反应 我本地测试登录的时候,直接将加了密的密码手动存到数据库中;而Spring Security存密码的格式是{id}encodedPassword;我用的加密方法是bcrypt,所以数据库存储的密码前面应该要追加{bcrypt} ### 2022-03-18 今天之前的一段时间都面临着高节奏的加班状态;今天偶尔有点喘息的时间反而让我觉得有点不适应了; 学习的东西始终不能停下,继续开始撸我的代码 #### 先记录一下已写好的东西: - CustomUserDetailsService 继承Security的UserDetailsService,查询用户 和 设置角色 - UserDetailsService 该接口提供用户进行用户认证 - CustomSecurityConfiguration 配置使用UserDetailsService实现类来设置角色 和 角色所能访问url前缀 - User/UserStatus/UserRepository/MainApi 测试模拟连接数据库来做登录 目前的demo配置比较简单 ### 2022-03-25 测试登录的地址: http://localhost:8080/dict/index.html #### 这里记录一下 后续需要深入了解的知识点 - csrf:跨站请求伪造攻击 - GenericFilterBean Spring MVC过滤器-超类 - 注解 @EnableGlobalMethodSecurity:prePostEnabled默认为false,需要设置为true后才能全局的注解权限控制 - HS512密匙生成