- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
ProviderManager 的默认行为是:
尝试使用 AuthenticationProviders 列表进行身份验证,直到成功或耗尽所有 AuthenticationProvider。
如果抛出 InternalAuthenticationServiceException,ProviderManager 会重新抛出此异常,并且不会尝试使用更多 AuthenticationProvider。
如果抛出 AccountStatusException,ProviderManager 会重新抛出此异常,并且不会尝试使用更多 AuthenticationProvider。
我想要什么:
如果出现InternalAuthenticationServiceException,那么它应该检查是否允许使用其他AuthenticationProvider,如果是,则继续使用。
如果抛出 AuthenticationException,则意味着用户未经身份验证,而不是重新抛出它并向调用者发送未经身份验证的响应,不要尝试使用更多 AuthenticationProvider。
我做了什么:
我创建了自己的 ProviderManager(让我们称之为 MyProviderManager)类,并编写了自己的authenticate(身份验证身份验证)方法定义。
现在我希望 spring 使用 MyProviderManager 而不是 ProviderManager。
我应该如何配置它?有办法吗?如果没有,我可以通过哪些其他方法来更改 ProviderManager 的行为?
最佳答案
所以答案是
通过 XML 或 JAVA 定义您自己的 Provider bean 配置。
在 Http 和 global-method-security 中,添加authentication-manager-ref 作为您的 bean id,Spring Security 将使用您的 Provider Manager 而不是 Springs 的。
关于java - 如何更改 Spring Security 中 ProviderManager 的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088307/
Spring 文档说 ProviderManager 是 AuthenticationManager 的默认实现,但是 ProviderManager 的实例由安全性自动创建和连接命名空间? 换句话说
ProviderManager 的默认行为是: 尝试使用 AuthenticationProviders 列表进行身份验证,直到成功或耗尽所有 AuthenticationProvider。 如果抛出
这个问题在这里已经有了答案: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException (2
我已经从 Spring 中实现了 UserDetailsService 并创建了一个从数据库中获取用户的函数,但在启动服务器时出现以下错误 Caused by: org.springframewo
我是一名优秀的程序员,十分优秀!