HttpSecurity和WebSecurity

HttpSecurity:

HttpSecurity 是 Spring Security 提供的用于配置 HTTP 安全的主要配置类之一。它提供了一些方法,用于配置请求的身份认证、授权、跨站请求伪造防护等。在 Spring Security 的配置过程中,通常会使用 HttpSecurity 配置请求安全策略,然后将其与 WebSecurity 结合起来使用。使用 HttpSecurity 可以方便地配置基于 HTTP 的安全性,如启用表单登录、启用 HTTP basic 认证、启用退出登录等。同时,还可以使用 HttpSecurity 配置请求的授权策略,如哪些请求需要进行身份认证、哪些请求需要授权等。

HttpSecurity常用方法:

方法名

作用

anonymous()

允许匿名用户访问

authorizeRequests()

开始请求授权配置

formLogin()

启用表单登录

httpBasic()

启用 HTTP basic 认证

logout()

启用退出登录

oauth2Login()

启用 OAuth2 登录

rememberMe()

启用 remember me 功能

requestMatchers()

添加匹配请求配置

securityContext()

添加 SecurityContext 配置

securityConfigurer()

添加自定义的安全配置

sessionManagement()

配置 Session 管理

csrf()

配置跨站请求伪造防护


其中,authorizeRequests() 方法是 HttpSecurity 的核心方法,它用于开启请求授权配置。在该方法之后,可以通过一系列的配置方法来配置哪些请求需要进行授权,以及授权的方式和条件。其他方法的作用如下:

  • anonymous():允许匿名用户访问,即不需要进行身份认证即可访问的请求。

  • formLogin():启用表单登录,即用户需要在网页上输入用户名和密码来进行身份认证。

  • httpBasic():启用 HTTP basic 认证,即用户需要在请求头中提供用户名和密码来进行身份认证。

  • logout():启用退出登录,即用户可以通过访问特定的 URL 来退出登录。

  • oauth2Login():启用 OAuth2 登录,即用户可以使用第三方 OAuth2 认证服务进行身份认证。

  • rememberMe():启用 remember me 功能,即用户可以选择“记住我”的选项,使得下次登录时可以直接进行身份认证。

  • requestMatchers():添加匹配请求的配置,可以根据请求的 URL 或其他条件来进行配置。

  • securityContext():添加 SecurityContext 配置,用于管理安全上下文信息。

  • securityConfigurer():添加自定义的安全配置,可以通过编写自定义的安全配置类来进行扩展。

  • sessionManagement():配置 Session 管理,可以设置 Session 的失效时间、Session ID 的生成策略等。

  • csrf():配置跨站请求伪造防护,可以设置是否启用 CSRF 防护、CSRF Token 的生成策略等。


WebSecurity:

WebSecurity 是 Spring Security 提供的用于配置 Web 安全的主要配置类之一。它提供了一些方法,用于配置 Spring Security 的一些基本行为,如忽略某些请求、设置用户信息来源、启用 HTTPS 等。以下是 WebSecurity 常用的方法及其作用:

方法名

作用

ignoring()

配置忽略某些请求

authorizeRequests()

开始请求授权配置

authenticationProvider()

配置身份认证提供者

headers()

配置 HTTP 头信息

portMapper()

配置端口映射

userDetailsService()

配置用户信息来源

httpBasic()

启用 HTTP basic 认证

formLogin()

启用表单登录

logout()

启用退出登录

csrf()

配置跨站请求伪造防护

sessionManagement()

配置 Session 管理

requiresChannel()

配置 HTTPS 通信

exceptionHandling()

配置异常处理


其中,ignoring() 方法用于配置忽略某些请求,如静态资源等,这些请求不需要进行身份认证和授权。

authorizeRequests() 方法用于开启请求授权配置,可以通过一系列的配置方法来配置哪些请求需要进行授权,以及授权的方式和条件。

authenticationProvider() 方法用于配置身份认证提供者,可以自定义身份认证的实现方式。其他方法的作用如下:

  • headers():配置 HTTP 头信息,如 X-Frame-Options、Strict-Transport-Security 等。

  • portMapper():配置端口映射,可以将 HTTP 请求映射到 HTTPS 请求或其他端口上。

  • userDetailsService():配置用户信息来源,可以使用内存、数据库或其他方式来获取用户信息。

  • httpBasic():启用 HTTP basic 认证,即用户需要在请求头中提供用户名和密码来进行身份认证。

  • formLogin():启用表单登录,即用户需要在网页上输入用户名和密码来进行身份认证。

  • logout():启用退出登录,即用户可以通过访问特定的 URL 来退出登录。

  • csrf():配置跨站请求伪造防护,可以设置是否启用 CSRF 防护、CSRF Token 的生成策略等。

  • sessionManagement():配置 Session 管理,可以设置 Session 的失效时间、Session ID 的生成策略等。

  • requiresChannel():配置 HTTPS 通信,可以设置哪些请求需要使用 HTTPS 通信。

  • exceptionHandling():配置异常处理,可以自定义异常处理的方式。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值