首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring Security中同时使用Servlet过滤器和AuthenticationProviders有什么意义?

在Spring Security中同时使用Servlet过滤器和AuthenticationProviders有什么意义?
EN

Stack Overflow用户
提问于 2020-02-23 06:19:26
回答 2查看 72关注 0票数 0

在阅读了documentation...it之后,我有点困惑,似乎您可以使用任何一种机制进行完整的身份验证,而不使用另一种机制。您可以在AuthenticationProvider中访问请求,并且可以在servlet过滤器中设置安全上下文。那么为什么两者都有呢?

EN

回答 2

Stack Overflow用户

发布于 2020-02-23 17:14:04

基本上,您可以在基于servlet的web应用程序的过滤器中执行任何(自定义)身份验证和授权,如果您选择这样做的话。

然而,spring-不仅仅意味着基于servlet的web应用程序。

AuthenticationProvider实现可以用于基于servlet的web应用程序的许多不同过滤器的身份验证,也可以用于例如基于socket的网络应用程序甚至本地非web应用程序的身份验证,并且通常与您的应用程序所依赖的通信协议完全无关。

通过实现您的自定义AuthenticationProvider接口,您将遵循关注点分离原则,如果需要,您稍后将能够从不同的过滤器或从其他代码部分委托给它,而无需复制您的代码。

票数 1
EN

Stack Overflow用户

发布于 2020-02-23 17:48:45

这是一种干净的代码设计。AuthenticationProvider及其相关对象是更通用的模型,它与Servlet等基础设施无关。

它类似于domain-driven-design中描述的领域模型。通过将关注的基础架构从实际的领域模型中分离出来,我们可以在其他基础架构环境中重用相同的领域模型(即代码),例如在独立的桌面应用程序中使用它,或者在您没有Servlet过滤器等概念的反应式web应用程序中使用它。

您可以认为Servlet筛选器是一种将两个世界绑定在一起的基础结构代码。(Servlet世界和spring安全域模型世界)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60357385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档