大家好,今天来为大家分享Spring Authorization Server 权威指南: 深入理解过滤链与 MVC 授权的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
[[434454]]
Spring Security的模块化配置
在开始之前,我们先回顾一下上一篇文章中提到的OAuth2.0客户端、资源服务器和授权服务器。它们现在在Spring Security 系统中被模块化。那么他们如何实现灵活的模块化呢?分析配置后,我发现以下相似之处。
这是OAuth2.0 Client的核心配置类:
publicfinalclassOAuth2ClientConfigurerextendsAbstractHttpConfigurer,B{//省略}这是OAuth2.0资源服务器的核心配置类:
publicfinalclassOAuth2ResourceServerConfigurerextendsAbstractHttpConfigurer,H{//省略}这是OAuth2.0 Authorization Server的核心配置类:
publicfinalclassOAuth2AuthorizationServerConfigurerextendsAbstractHttpConfigurer,H{//省略} 它们的配置类都继承了AbstractHttpConfigurer,这些配置最终都会被HttpSecurity的apply(C配置器)加载到Spring Security中。
这个机制给了您什么启发?是否可以实现一些定制的功能配置?
Spring Authorization Server的过滤器
基于版本0.2.0。
DEMO中,Spring Authorization Server通过以下默认配置引入授权服务器相关功能:
@BeanOrder(Ordered.HIGHEST_PRECEDENCE)publicSecurityFilterChainauthorizationServerSecurityFilterChain(HttpSecurityhttp)throwsException{//AuthorizationServer默认配置OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);returnhttp.formLogin(Customizer.withDefaults()).build();}这里会构建一个独立的SecurityFilterChain来加载之所以说授权服务器的配置是独立的,是因为HttpSecurity是基于原型(@Scope('prototype'))注入到Spring IoC中的。然后相关请求由该过滤器链处理。
OAuth2AuthorizationServerConfigurer
该类负责配置Spring Authorization Server过滤器链SecurityFilterChain。它负责授权服务器所有相关过滤器的配置和初始化。其中四个过滤器可以通过其各自的配置器灵活定制,如此处所列。
OAuth2ClientAuthenticationConfigurer该配置类用于配置OAuth2ClientAuthenticationFilter。该过滤器用于处理OAuth2.0 Client认证请求,用于查询OAuth2.0 Client的注册信息OAuth2ClientAuthenticationToken。该过滤器将拦截以下三个端点:
/oauth2/token 获取令牌端点。
/oauth2/introspect 令牌内省端点。 /oauth2/revoke 令牌撤销端点。 OAuth2AuthorizationEndpointConfigurer 该配置类用于配置OAuth2AuthorizationEndpointFilter。该过滤器用于处理OAuth 2.0 Authorization Code Grant授权请求/oauth2/authorize,包括用户二次确认(Consent)逻辑。
OAuth2TokenEndpointConfigurer该配置类用于配置OAuth2TokenEndpointFilter。该过滤器用于处理/oauth2/token 端点请求并管理OAuth2.0 令牌的生命周期。
OidcConfigurer该配置类用于提供对OIDC协议的支持。有两个过滤器。
OidcClientRegistrationEndpointFilter 用于处理/connect/register 端点请求并实现OpenID Connect 1.0 动态客户端注册请求。
OidcProviderConfigurationEndpointFilter 通过/.well-known/openid-configuration 端点提供OIDC Provider 元配置信息。
你可以调用前面DEMO中的http://localhost:9000/.well-known/openid-configuration试试看有什么效果。
其它过滤器
除了以上几种过滤器外,还可以通过各自的Configurer灵活配置相应的过滤器。还有一些过滤器当前未开放配置。
OAuth2TokenIntrospectionEndpointFilter,用于处理/oauth2/introspect 令牌内省逻辑。 OAuth2TokenRecationEndpointFilter,用于处理令牌撤销逻辑NimbusJwkSetEndpointFilter,用于处理JWK 信息URI 端点/oauth2/jwks 的逻辑。 OAuth2AuthorizationServerMetadataEndpointFilter,用于提供OAuth2.0授权服务器元数据访问端点/.well-known/oauth-authorization-server的逻辑。也可以尝试调用前面DEMO中的http://localhost:9000/.well-known/oauth-authorization-server看看效果如何。
总结
好了,关于Spring Authorization Server 权威指南: 深入理解过滤链与 MVC 授权和的问题到这里结束啦,希望可以解决您的问题哈!
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7227.html
用户评论
这篇文章讲的是Spring Authorization Server里如何使用过滤器来控制授权流程吗?
有20位网友表示赞同!
MVC授权过滤器听起来很酷,可以定制很多权限逻辑吧。
有11位网友表示赞同!
学习一下Spring Authorization Server的框架设计,能帮助我更深入理解OAuth 2.0?
有17位网友表示赞同!
这种基于链式过滤器的方案会不会增加代码复杂度?
有12位网友表示赞同!
想找个详细的教程来实践一下这个 MVC 授权过滤器。
有12位网友表示赞同!
Spring Authorization Server 的文档好像挺多的,不知道怎么找找到这篇文章里的具体内容?
有5位网友表示赞同!
希望文章里能讲清楚不同的过滤器类型和使用方法。
有17位网友表示赞同!
这篇文章是不是针对已经熟悉 Spring Boot 开发的人写的?
有13位网友表示赞同!
最近在研究API安全,这种授权框架听起来很实用。
有7位网友表示赞同!
想知道这个 MVC 授权过滤器能不能结合其他的安全策略使用?
有17位网友表示赞同!
文章会介绍一些常见的场景和例子吗?
有20位网友表示赞同!
学习完这些知识以后,我就能自己实现一个定制化的权限管理系统吧!
有13位网友表示赞同!
这种授权框架应用于前后端分离的项目效果如何?
有10位网友表示赞同!
希望文章能用通俗易懂的语言讲解技术细节。
有11位网友表示赞同!
这个过滤器链的方式会不会影响性能?
有8位网友表示赞同!
学习完这篇文章,我可以更好地理解 Spring Security 和 OAuth 的区别吗?
有10位网友表示赞同!
期待看到一些开源案例和代码示例。
有19位网友表示赞同!
希望以后可以找到更多关于Spring Authorization Server的优质资源。
有17位网友表示赞同!
这个框架是不是只适合 Java 应用开发?
有8位网友表示赞同!
这篇文章能帮我在实际项目中更好的应用授权机制吗?
有19位网友表示赞同!
我对微服务的授权方法也很感兴趣,这篇文章会涉及吗?
有17位网友表示赞同!