Spring Security的原理简介

参考文章:Spring Boot框架整合Spring Security实现安全访问控制

SpringSecurity核心组件

Spring Security做JWT认证和授权--import

SpringBoot中使用Shiro和JWT做认证和鉴权--import

 

Spring Security的安全访问控制分为Authentication(认证)Authorization(授权,也叫“访问控制”)。认证指的是用户登录的信息验证,判断你账号密码是否正确;授权指的是当用户访问一个页面时判断他有没有这个权限。

一般流程为:

1. 当用户登录时,前端将用户输入的用户名、密码信息传输到后台,后台用一个类对象将其封装起来,
通常使用的是UsernamePasswordAuthenticationToken这个类。

2. 程序负责验证这个类对象。验证方法是调用Service根据username从数据库中取用户信息到实体类的实例中,
比较两者的密码,如果密码正确就成功登陆,同时把包含着用户的用户名、密码、所具有的权限等信息的类对象
放到SecurityContextHolder(安全上下文容器,类似Session)中去。

3. 用户访问一个资源的时候,首先判断是否是受限资源。如果是的话还要判断当前是否未登录,
没有的话就跳到登录页面。

4. 如果用户已经登录,访问一个受限资源的时候,程序要根据url去数据库中取出该资源所对应的
所有可以访问的角色,然后拿着当前用户的所有角色一一对比,判断用户是否可以访问。

 

你可能感兴趣的:(spring,boot)