【问题标题】:Error creating bean with name 'authenticationSuccessHandler' defined in ServletContext resource [/WEB-INF/config/application-security.xml]在 ServletContext 资源 [/WEB-INF/config/application-security.xml] 中定义名称为“authenticationSuccessHandler”的 bean 创建错误
【发布时间】:2018-02-14 02:07:14
【问题描述】:

我收到以下错误:

【问题讨论】:

  • 您的 LoginSuccessHandler 有缺陷。你不应该在那里有请求和用户字段,因为成功处理程序是一个单例 bean。
  • 不,教程没有这些字段。无论如何,您要对处理程序做什么?
  • @holmis83 看起来问题出在构造函数上,我删除了它。但是现在我收到一条错误消息 Error creating bean with name authenticationSuccessHandler defined in ServletContext resourc 但我正在我的 web.xml 文件中扫描它。 /WEB-INF/config/application-security.xml</param-value>
  • @holmis83 请参阅更新 1
  • @holmis83 我正在尝试验证有关用户帐户的不同内容并返回必要的路径。例如,用户需要更新他们的密码,或者这很好,他们去主页。

标签: spring-mvc spring-security


【解决方案1】:

第一个错误是您编写的课程中的错误。构造函数要求一个字符串和一个 HTTPSession。

  • 字符串可以设置为属性
  • HTTPSession 不应用作 Spring bean,因为 Spring 声明 Singleton 并且 Session 取决于用户。

第二个错误意味着您忘记提供身份验证管理器。您可以添加一个:

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider
        user-service-ref="userDetailsService" />
</security:authentication-manager>

其中 userDetailsS​​ervice 是将名称映射到 UserDetails 的 bean。 Spring 提供了一些实现,例如 InMemoryUserDetailsManagerJdbcUserDetailsManagerLdapUserDetailsService

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 1970-01-01
    • 2021-09-20
    • 2018-11-05
    • 1970-01-01
    • 2016-10-27
    • 2016-08-20
    • 1970-01-01
    • 2018-09-14
    相关资源
    最近更新 更多