SpringSecurity最全实战讲解六

228 阅读2分钟

八、主线问题总结

这样,我们就完成了Spring Security OAuth2的体验之旅,现在我们回头来体验一下整个过程。有一些问题需要总结下。

1、什么是认证、授权、会话、RBAC?基于Session的方式和基于Token的方式有什么区别?

2、Spring Security的工作原理,认证流程、授权流程。中间有哪些关键组件?主体服务、密码解析器、访问安全规则、登录登出页面逻辑... 这些关键组件如何进行扩展?

3、OAuth2.0认证的四种模式,他们的大体流程。

4、Spring Security OAuth2.0如何实现OAuth2.0协议? 有哪些关键组件?

九、附录,HttpSecurity配置项

方法说明
openidLogin()用于基于 OpenId 的验证
headers()将安全标头添加到响应
cors()配置跨域资源共享( CORS )
sessionManagement()允许配置会话管理
portMapper()向到 HTTPS 或者从 HTTPS 重定向到 HTTP。默认情况下,Spring Security使用一个PortMapperImpl映射 HTTP 端口8080到 HTTPS 端口8443,HTTP 端口80到 HTTPS 端口443
jee()配置基于容器的预认证。 在这种情况下,认证由Servlet容器管理
x509()配置基于x509的认证
rememberMe允许配置“记住我”的验证
authorizeRequests()允许基于使用HttpServletRequest限制访问
requestCache()允许配置请求缓存
exceptionHandling()允许配置错误处理
securityContext()在HttpServletRequests之间的SecurityContextHolder上设置SecurityContext的管理。 当使用WebSecurityConfifigurerAdapter时,这将
servletApi()将HttpServletRequest方法与在其上找到的值集成到SecurityContext中。 当使用WebSecurityConfifigurerAdapter时,这将自动应用
csrf()添加 CSRF 支持,使用WebSecurityConfifigurerAdapter时,默认启用
logout()添加退出登录支持。当使用WebSecurityConfifigurerAdapter时,这将自动应用。默认情况是,访问URL”/ logout”,使HTTP Session无效来
anonymous()允许配置匿名用户的表示方法。 当与WebSecurityConfifigurerAdapter结合使用时,这将自动应用。 默认情况下,匿名用户将使用
formLogin()指定支持基于表单的身份验证。如果未指定FormLoginConfifigurer#loginPage(String),则将生成默认登录页面
oauth2Login()根据外部OAuth 2.0或OpenID Connect 1.0提供程序配置身份验证
requiresChannel()配置通道安全。为了使该配置有用,必须提供至少一个到所需信道的映射
httpBasic()配置 Http Basic 验证
addFilterAt()允许配置错误处理
exceptionHandling()在指定的Filter类的位置添加过滤器