门户网站的营销方式,建设银行河北省分行官方网站,建设厅电工证,昆明中国建设银行网站一 springsecurity实现权限认证的笔记
1.1 springsecurity的作用
springsecurity两大核心功能是认证和授权#xff0c;通过usernamepasswordAuthenticationFilter进行认证#xff1b;通过filtersecurityintercepter进行授权。springsecurity其实多个filter过滤链进行过滤。…一 springsecurity实现权限认证的笔记
1.1 springsecurity的作用
springsecurity两大核心功能是认证和授权通过usernamepasswordAuthenticationFilter进行认证通过filtersecurityintercepter进行授权。springsecurity其实多个filter过滤链进行过滤。
用户认证指的是验证某个用户是否为系统合法主题也就是说用户能否访问系统用户认证一般要求用提供用户名和密码系统通过校验用户名和密码来验证认证过程。
用户授权指的是某个用户具有权限执行某个操作在一个系统中不同的用户所具有的权限是不同的。比如对一个文件来说有的用户只能进行读取而用的用户可以进行修改。一般来说系统会为不同的用户分配不同的角色而每个角色对应一系列的权限。
1.2 token模式与session模式
1.如果基于session模式那么spring-security会对cookie里的sessionid进行解析找到服务器存储session信息然后判断当前用户是否符合请求的要求。
2.如果是基于token则需要解析token然后对当前请求加入到spring-security管理的权限信息中去。
1.3 案例授权流程
如果系统的模块比较多每个模块都需要进行认证和授权所以我们选择基于token的形式进行认证与授权。
1.用户根据用户名和密码认证成功然后获取用户角色的一系列信息并以用户名为key权限为列表的value的形式存储到redis缓存中。
2.根据用户名和相关信息生成token返回给前端。
3.浏览器将token记录到cookie中每次调用api接口都默认将token携带到header请求头中。
4.spring-security解析header头获取token信息解析token获取用户名根据用户名从redis中获取权限信息列表。这样spring-security就能够判断当前请求是否有权限访问。 1.4 整合springsecurity的结构
二 疑问记录
2.1 springsecurity怎么取消默认的登录页面以及修改页面自定义样式 2.2 分布式认证授权问题
分布式认证授权 1.没有登录情况下访问资源 api网关能够进行权限拦截 2.登录情况下怎么对token的解析验证 3.登录情况下权限内容怎么获取
4.分布式认证授权怎么做sso 2.3 权限系统中用户A对用户B修改权限后
1超级用户修改正在登录中的用户密码之后当前强制退出
实现逻辑1.假设用户认证成功后用户信息存储到redis中且形式为userid,权限 2.管理员修改用户密码后通过userid将redis中的用户信息清空。 3.用户再操作功能时相应请求走filter进行判断用户的权限为空则让其重新登录。
2) 超级用户修改正在登录中的用户的角色权限之后强制退出
实现逻辑1.假设用户认证成功后用户信息存储到redis中且形式为userid,权限 2.管理员修改用户角色后通过查询redis把redis中包含修改角色的用户信息都清空 3.用户操作功能时相应请求走filter进行判断用户的权限为空则让其重新登录。
2.4 指定登录接口
1.前端 2.后端 具体登录接口