- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对不起,大家,也许是一个愚蠢的问题。
但是我需要在我的网络应用程序中实现一些额外的身份验证和授权逻辑,并且我不清楚必须在哪里使用 AuthenticationProvider
和 AuthenticationEntryPoint
。
在寻找一些示例时,我有时发现 security:http
部分中省略了 AuthenticationEntryPoint
。
但是在某些情况下,AuthenticationProvider
也会被省略(框架提供默认实例?),并且只需要 UserDetailsService
实现。
请问您能澄清一些基本概念吗?
最佳答案
简短回答:
AuthenticationProvider
为了将您的自定义身份验证方案集成到 Spring Security 中。 AccessDecisionVoter
为了将您的自定义授权方案集成到 Spring Security 中。您可能还需要实现自定义 AccessDecisionManager
在某些特定情况下,尽管捆绑的通常就足够了。请注意,与 AuthenticationEntryPoint
相比,这些都不是特定于网络的。 ,这是 Spring Security Web 的一部分,而不是 Spring Security Core 的一部分。 AuthenticationEntryPoint
的主要功能是允许框架从应用程序服务器向 Web 客户端发送某种“要访问此资源,您必须首先进行身份验证”的通知。大多数标准通知已在 Spring Security Web 中实现。例如:
BasicAuthenticationEntryPoint
:这与基本身份验证一起使用。 “通知”是 HTTP 401 响应。LoginUrlAuthenticationEntryPoint
:您典型的“重定向到登录页面”行为。CasAuthenticationEntryPoint
:与前者类似,通过 CAS 重定向到企业范围的登录页面以执行 SSO。 .Http403ForbiddenEntryPoint
:通知只是一个 HTTP 403 响应。当您使用预身份验证(例如客户端 X.509 证书)并且用户凭据不提供访问权限时,这非常有用。如您所见,除非您所需的行为过于具体,否则您不需要提供自己的 AuthenticationEntryPoint
实现。
关于java - AuthenticationProvider 和 AuthenticationEntryPoint 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618195/
我想要一个基本的受身份验证保护的 REST 应用程序。我遵循了 http://www.baeldung.com/spring-security-authentication-provider 中的一般
这个问题已经有答案了: Catching exception thrown in AuthenticationProvider (4 个回答) 已关闭 3 年前。 我正在我的应用程序中实现自定义身份验
这是 this question 的后续内容. 我有一个扩展 AbstractUserDetailsAuthenticationProvider 的自定义 AuthenticationProvider
我正在实现自定义“AuthenticationProvider”。如果未经过身份验证,我将在“身份验证”函数内抛出异常,如下所示。 public class DelegatingLdapAuthent
我正在整合 Spring Security Auth0使用 1.3.2.RELEASE BOM 进入 Spring Web 应用程序。我一直在使用提供的 auth0-security-context.
我对 Spring 还很陌生。 我的目标是拥有一些带有自定义authenticate方法的AuthenticationProvider,该方法将Authenticate对象作为参数,而不仅仅是用户名和
我正在实现自定义“AuthenticationProvider”。如果未通过身份验证,我将在“身份验证”函数中抛出异常,如下所示。 public class DelegatingLdapAuthent
对不起,大家,也许是一个愚蠢的问题。 但是我需要在我的网络应用程序中实现一些额外的身份验证和授权逻辑,并且我不清楚必须在哪里使用 AuthenticationProvider 和 Authentica
我尝试使用 JWT 来保护基于 Spring Security 的资源,以实现以下目标:1. Token无效或过期,返回401。2. 授权成功,但无权访问部分控制者。然后返回403。现在有问题了。当用
我有一个简单的身份验证提供程序,我正在尝试将其与 Spring Security 一起使用。 目前,通过上述配置,用户第一次访问时会被重定向到登录页面。我不想要这个重定向。
任何人都可以帮我解释我们应该使用 AuthenticationProvider 以及我们应该使用 AbstractUserDetailsAuthenticationProvider 的场景/用例。 最
我的 web.xml 配置是 springSecurityFilterChain org.springframework.web.filter.DelegatingF
谁能告诉我 Spring Security 中 AuthenticationManager 和 AuthenticationProvider 之间的区别? 如何使用它们以及如何调用它们。我的理解是 S
如何在自定义 AuthenticationProvider 中访问 HttpServletRequest。我试过这样做 RequestAttributes requestAttributes = Re
我无法在我的 SecurityConfig 类中 Autowiring AuthenticationProvider Spring 框架实例。这很奇怪,因为我已经包含了必要的导入,并且 UserDet
要在 Spring Boot 中提供自定义身份验证提供程序,我是否需要以下两项?它们有什么区别? AuthenticationManagerBuilder HttpSecurity.authentic
我有一个 Keycloak 连接器,允许我通过 SSO 检索用户的用户名。我想使用这个用户名来验证用户并在数据库中查找他的权限,并将该用户权限注入(inject)到 spring security 中
在使用 spring security 时,我在 stackoverflow 中看到了一个有趣的线程,其中要求对两组用户进行身份验证,以防止员工反对不同的身份验证提供商 LDAP 和针对 DATABA
这个问题已经有答案了: 奥 git _a (3 个回答) 已关闭 5 年前。 我正在创建自己的自定义身份验证提供程序。现在我只是检查静态用户名和密码,但稍后这将被替换为更高级的东西,所以虽然我不需要在
我一直在尝试使用他们的 x509 证书通过 LDAP 对用户进行身份验证,但似乎无法正常工作。我声明了一个身份验证提供程序,但我仍然收到一条错误消息,说没有提供程序。 这是我的调试输出: INFO:
我是一名优秀的程序员,十分优秀!