1.springsecurity基于内存和数据库的认证

1.总结:
  1. 昨天主要是使用security实现了基于内存的认证和基于数据库的认证(实际项目中使用);
  2. 在security的项目中,必须配置WebSecurityConfigurerAdaptor的实现类来重写它的基于认证的config(AuthenticationManagerBuilder auth)方法以及它的基于授权的config(HttpSecurity http)方法
  3. 在认证的config(AuthticationManagerBuilder auth)中存在基于inMenmoryAuthentication的内存认证和基于setUserDetailsService实现类的数据库认证
  4. 在授权的config(HttpSecurity http)中可以实现对一些具备角色信息的url进行设置拦截;也可以实现表单登录,loginProcessingUrl设置表单接口的action,loginPage设置自定义跳转登录页面,再自定义表单的username和password名;还可以设置successfulHandler来自定义登陆成功处理,需要构造一个AuthenticationSuccessHandler类重写它的OnAuthenticationSuccess方法,该方法具体过程就是通过request获取用户信息再设置response对浏览器进行响应;有登陆成功自然也有登录失败处理,同上面一样设置failureHandler自定义登录失败处理,需要构造一个AuthenticationFailureHandler类重写它的OnAuthenticationFailure方法,设置response进行响应,过程是之前Jwt实现单点登录的ResponseUtil工具类,上面的OnAuthenticationSuccess方法的构写也是的;最后就是注销,使用logout方法开启注销,logoutUrl默认注销Url,还有清理身份信息和session清楚等,注销也有addlogoutHandler进行自定义注销处理(数据清理如cookie清除),还有logoutSuccessHandler自定义注销成功后处理,一般为跳回主页面,还没有注销失败处理
 
2.反思:其实之前也学过springsecurity,但是呢,没有去回顾网络很多,当猛然去回顾,其实现在学的很多都是之前自己实操过的;常去复习可以巩固以及加深自己所学;在项目中还是存在两个问题和了解;第一个就是loginPage,里面设置的字符串对应自定义登录跳转页面,为什么我的失效,具体应该怎么使用;第二个实际开发中角色具有上下级关系,我们应该接触源码,更深层次了解这种关系,自定义自己的授权
 
3.复盘:周日会总体回顾一遍之前所学,再就是把昨天所学的自定义登录,自定义登陆成功,失败,上一级注销进行复盘,这是后面开发中必不可少的,要用什么立马学什么,再就是会接着敲关于高级配置的权限处理
posted @ 2022-09-25 11:10  求知律己  阅读(122)  评论(1编辑  收藏  举报