B092-人力资源项目-security

目录

      • springsecurity权限控制使用的必要性分析及它的概念介绍
      • 基于session的认证和授权流程介绍
        • 认证流程
        • 认证检查
        • 授权流程
      • 代码
        • 认证流程小结
        • 认证授权流程
        • Security中核心过滤器链
        • security执行认证的详细流程图
        • Security授权流程
        • 剩余见代码工程

springsecurity权限控制使用的必要性分析及它的概念介绍

B092-人力资源项目-security_第1张图片
B092-人力资源项目-security_第2张图片
认证,授权,RBAC,

基于session的认证和授权流程介绍

文档+

认证流程

B092-人力资源项目-security_第3张图片

认证检查

B092-人力资源项目-security_第4张图片

授权流程

B092-人力资源项目-security_第5张图片

代码

认证流程小结

B092-人力资源项目-security_第6张图片

  • SpringSecurity根据我们在WebSecurityConfig中的配置会对除了“/login”之外的资源进行拦截做认证检查,
  • 如果没有认证会跳转到默认的认证页面“/login” ,
  • 输入用户名和密码后点击登录,SpringSecurity会带着用户名调用 UserDetailsService.loadUserByUsername获取用户的认证信息(用户名,密码,权限等),
  • 然后执行认证工作:表单密码和loadUserByUsername加载的数据库的密码进行匹配(PasswordEncoder)
  • 认证成功跳转成功地址

认证授权流程

SpringSecurity是基于Filter实现认证和授权,底层通过FilterChainProxy代理去调用各种Filter(Filter链),Filter通过调用AuthenticationManager完成认证 ,通过调用AccessDecisionManager完成授权。流程如下图:
B092-人力资源项目-security_第7张图片

Security中核心过滤器链

B092-人力资源项目-security_第8张图片

security执行认证的详细流程图

B092-人力资源项目-security_第9张图片

Security授权流程

B092-人力资源项目-security_第10张图片
流程思路小结
B092-人力资源项目-security_第11张图片

剩余见代码工程

配置,重写filter查数据库权限列表,授权注解

用两个注解完成授权,不需要Java代码,加完该注解后执行该方法会有权限校验,

@PreAuthorize("hasAuthority('employee:list')")
@PreAuthorize("hasAnyAuthority('employee:update','dept:update')")

以上是在已登录情况下,如果没有登录会进入登录页面

登录表单提交/login交给了Security框架

你可能感兴趣的:(笔记总结,security)