Spring Security开发安全的REST服务视频教程

Spring Security开发安全的REST服务视频教程_第1张图片

Spring security框架简介

1、简介

Spring Security开发安全的REST服务视频教程_第2张图片

一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对访问权限进行控制嘛),应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。 spring security的主要核心功能为 认证和授权,所有的架构也是基于这两个核心功能去实现的。

2、框架原理

众所周知 想要对对Web资源进行保护,最好的办法莫过于Filter,要想对方法调用进行保护,最好的办法莫过于AOP。所以springSecurity在我们进行用户认证以及授予权限的时候,通过各种各样的拦截器来控制权限的访问,从而实现安全。

如下为其主要过滤器

WebAsyncManagerIntegrationFilter

SecurityContextPersistenceFilter

HeaderWriterFilter

CorsFilter

LogoutFilter

RequestCacheAwareFilter

SecurityContextHolderAwareRequestFilter

AnonymousAuthenticationFilter

SessionManagementFilter

ExceptionTranslationFilter

FilterSecurityInterceptor

UsernamePasswordAuthenticationFilter

BasicAuthenticationFilter

3、框架的核心组件

SecurityContextHolder:提供对SecurityContext的访问

SecurityContext,:持有Authentication对象和其他可能需要的信息

AuthenticationManager 其中可以包含多个AuthenticationProvider

ProviderManager对象为AuthenticationManager接口的实现类

AuthenticationProvider 主要用来进行认证操作的类 调用其中的authenticate()方法去进行认证操作

Authentication:Spring Security方式的认证主体

GrantedAuthority:对认证主题的应用层面的授权,含当前用户的权限信息,通常使用角色表示

UserDetails:构建Authentication对象必须的信息,可以自定义,可能需要访问DB得到

UserDetailsService:通过username构建UserDetails对象,通过loadUserByUsername根据userName获取UserDetail对象 (可以在这里基于自身业务进行自定义的实现 如通过数据库,xml,缓存获取等)

 

 

登录成功配置

默认情况下,用户登录成功后由于RequestCache中保存着登录之前的url,将自动跳转到该页面;如果用户需要在登录成功后执

行一些操作,就需要自定义登录成功操作;

A、默认的成功处理类:SavedRequestAwareAuthenticationSuccessHandler

B、自定义处理:

实现AuthenticationSuccessHandler接口,并复写onAnthenticationSuccesss()方法;

要使得自定义登录成功认证生效,需要在WebSecurityConfigurerAdapter接口实现类的configure()方法中添加

successHandler(自定义接口实现类对象)

C:登录失败配置

默认情况下,用户登录失败后会自动跳转到登录页;如果用户需要在登录失败后执行一些操作,就需要自定义登录失败操作

A、默认的失败处理类:SimpleUrlAuthenticationFailureHandler

B、自定义处理:

实现AnthenticationFailureHandler接口,并复写onAuthenticationFailure()方法;

要使得自定义登录成功认证生效,需要在WebSecurityConfigurerAdapter接口实现类的configure()方法中添加

failureHandler(自定义接口实现类对象)

 

 

 

第1章 课程导学

介绍课程内容、课程特点,使用的主要技术栈,以及学习课程所需的前置知识

第2章 开始开发

安装开发工具,介绍项目代码结构并搭建,基本的依赖和参数设置,开发hello world

第3章 使用Spring MVC开发RESTful API

本章主要开发一些REST风格的服务接口,后面章节中的认证授权模块会为这些服务接口提供安全保护,在这一章中,你会学习开发REST风格服务接口时,一些常用的技巧和工具。我们会介绍如何拦截服务接口来提供一些通用的功能(例如记日志),还会介绍如何通过多线程来提高服务的性能,以及如何自动生成服务文档和伪造服务等。...

第4章 使用Spring Security开发基于表单的登录

介绍Spring Security的基本原理和核心概念,学习如何利用Spring Security提供的开箱即用的功能快速开发基于用户名密码的登录,以及如何扩展Spring Security的默认实现来满足个性化的需求,在这个过程中,我们会深入了解Spring Security的源码实现。最后,我们会学习如何向Spring Security中加入完全自定义的登录方式,...

第5章 使用Spring Social开发第三方登录

首先会介绍OAuth协议和Spring Social的基本原理和核心概念,然后我们会基于Spring Social开发QQ登录和微信登录,通过这些实战开发,你会深入了解Spring Social的底层源码实现,以及如何扩展这些实现来适应不同的服务提供商。本章最后,我们会介绍Spring Security中与session管理相关的特性,如超时处理,并发控制等。...

第6章 Spring Security OAuth开发APP认证框架

首先会介绍Spring Security OAuth的主要功能,然后我们会学习如何基于Spring Security OAuth搭建自己的认证服务器和资源服务器。我们还会重构之前编写的登录功能的代码,使其可以返回认证服务器生成的token来实现对APP登录的支持。在这个过程中,我们会介绍如何控制token的生成和存储策略,以及如何自动刷新token等知识...

第7章 使用Spring Security控制授权

本章会介绍Spring Security中另一个重要功能:授权的相关知识,首先我们会介绍Spring Security中与授权相关的原理和概念,然后,我们会依据授权逻辑的复杂程度将常见的授权场景分类,并针对每一类场景介绍如何使用Spring Security来控制授权行为。...

第8章 课程总结

快速回顾课程中开发的可重用的认证和授权模块,总结功能特性及使用方式,总结配置项,总结扩展点,总结服务响应状态码规则。进一步优化和提升的思路提示。

你可能感兴趣的:(java)