Spring Security

什么是 Spring Security?核心功能? 
Spring Security 是一个基于 Spring 框架的安全框架,提供了完整的安全解决方案,包括认证、
授权、攻击防护等功能。 
其核心功能包括: 
认证:提供了多种认证方式,如表单认证、HTTP Basic 认证、OAuth2 认证等,可以与多种身
份验证机制集成。 
授权:提供了多种授权方式,如角色授权、基于表达式的授权等,可以对应用程序中的不同
资源进行授权。 
攻击防护:提供了多种防护机制,如跨站点请求伪造(CSRF)防护、注入攻击防护等。 
会话管理:提供了会话管理机制,如令牌管理、并发控制等。 
监视与管理:提供了监视与管理机制,如访问日志记录、审计等。 
Spring Security 通过配置安全规则和过滤器链来实现以上功能,可以轻松地为 Spring 应用程
序提供安全性和保护机制。 


Spring Security 的原理? 
1.用户请求 Web 应用程序的受保护资源。 
2.Spring Security 拦截请求,并尝试获取用户的身份验证信息。 
3.如果用户没有经过身份验证,Spring Security 将向用户显示一个登录页面,并要求用户提
供有效的凭据(用户名和密码)。 
4.一旦用户提供了有效的凭据,Spring Security 将验证这些凭据,并创建一个已认证的安全上下文(SecurityContext)对象。
5.安全上下文对象包含已认证的用户信息,包括用户名、角色和授权信息。 
6.在接下来的请求中,Spring Security 将使用已经认证的安全上下文对象来判断用户是否有
权访问受保护的资源。 
7.如果用户有权访问资源,Spring Security 将允许用户访问资源,否则将返回一个错误信息。 

Spring Security 有哪几种常见的认证方式? 
1) 基于内存的方式。 
2) 基于数据库的方式。此种方式为常用的方式,适用于生产环境。 
3) 基于 LDAP 的方式。 
 LDAP 有配置远程服务器和配置嵌入是的 LDAP 服务器2种方式, 
 远程的 LDAP 服务器需要配置 contextSource 方法来配置远程服务器的地址 url。 
.contextSource().url("ldap://habuma.com:389/dc=habuma,dc=com") 
 嵌入的 LDAP 服务器需要通过 root 方法来配置。 
.contextSource().root("dc=habuma,dc=com") 

Spring Security 有哪些控制请求访问权限的方法? 
在 Spring Security 中,可以使用以下方法来控制请求访问权限: 
permitAll():允许所有用户访问该请求,不需要进行任何身份验证。 
denyAll():拒绝所有用户访问该请求。 
anonymous():允许匿名用户访问该请求。 
authenticated():要求用户进行身份验证,但是不要求用户具有任何特定的角色。 
hasRole(String role):要求用户具有特定的角色才能访问该请求。 
hasAnyRole(String... roles):要求用户具有多个角色中的至少一个角色才能访问该请求。 
hasAuthority(String authority):要求用户具有特定的权限才能访问该请求。 
hasAnyAuthority(String... authorities):要求用户具有多个权限中的至少一个权限才能访问该
请求。 
可以将这些方法应用于 Spring Security 的配置类或者在 Spring Security 注解中使用。 


怎么通过 spring security 创建自定义的权限用户? 
我们只需要实现 Spring Security 提供的 UserDetailsService 接口就行了。通过实现该接口里的
loadUserByUserName 来自定义查找用户等操作。另外可以通过 SpitterRepository 来创建 user
对象,其中原理是获取到 spitter 对象,然后用它来创建 user 对象。我们不需要了解其框架
的实现原理,只需要获取到 user 对象即可。 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值