当前位置: 首页 > 面试题库 >

在Spring Security中无法识别身份验证提供者用户服务引用

向弘懿
2023-03-14
问题内容

我正在我的项目中实施Spring Security

在我的DAO类中,我正在定义loadUserByUsername

我的课就像

UserDAOImpl.java

@Repository
public class UserDAOImpl {

public UserDetails loadUserByUsername(String name)throws UsernameNotFoundException
{
  //implementation 
}
}

在Spring-security.xml中

<authentication-manager>
        <authentication-provider user-service-ref="UserDAOImpl">
      </authentication-provider>
    </authentication-manager>

但是当我运行程序时出现错误

Error creating bean with name 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0': Cannot resolve reference to bean 'UserDAOImpl' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserDAOImpl' is defined

谁能帮我解决这个问题?


问题答案:

通常,被组件扫描的Bean以小写字母开头,并以驼峰大小写,因此该Bean在应用程序上下文中将以userDAOImpl(not
UserDAOImpl)的形式存在。

将您的spring-security.xml代码段更改为

<authentication-manager>
    <authentication-provider user-service-ref="userDAOImpl">
  </authentication-provider>
</authentication-manager>

希望这对您有用。



 类似资料:
  • 我正在用Okta替换我们内部发明的身份验证服务,并且需要在我们的应用程序中使用Saml2支持SSO。Okta可以配置为服务提供者,发送并接收和验证。到目前为止一切顺利:我能够在Okta中配置身份提供者,接收断言,并且根据日志,断言已成功验证并用户自动配置。 但是从现在开始会发生什么呢? < li >在Idp启动的流程中,如何将用户重定向到应用程序url?由Idp配置的< code>RelaySta

  • 问题内容: 我的Web应用程序有多个身份验证管理器(一个用于API,一个用于WEB访问)。该api应该仅具有基本的身份验证服务- 通过spring安全标记进行配置,如下所示: 我无法内联身份验证提供程序,因为我希望它可以被子bean配置覆盖。 我的问题是我无法在security:authentication-provider元素上定义别名/ id以在身份验证管理器中引用它。有一个简单的解决方法吗?

  • 我在调试身份验证问题时遇到了这个代码片段: 我在调试和摆弄用户凭证时注意到,如果第一个身份验证提供者(即< code > userdailsservice )无法对我的用户进行身份验证,那么就会远程调用我的LDAP服务器来尝试对我的用户进行身份验证。但是,如果第一个身份验证提供者成功地对我的用户进行了身份验证,则不会调用第二个身份验证提供者。 我的问题是,列出这些身份验证提供者的工作方式是否使得如

  • 我试图在authenticationProvider中使用自动连线对象,但出现错误。如果不在类中使用服务对象,就不会有问题,但我当然需要服务对象。 定制身份验证提供者类: 使用自定义提供程序的类: 豆的创造: 安全性的初始化: 错误消息: 警告:在上下文初始化过程中遇到异常-取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependency

  • 我试图扩展用户身份验证示例,这里也给出了这个示例,以便多个用户可以登录到服务器。我还想为每个用户分配一个不同的主目录。到目前为止,我还没有找到Apache SSHD API提供的任何此类实用程序,因此我尝试了以下解决方案,使用Apache FTPServer提供的实用程序。 我试图做的是:

  • 问题内容: 我正在用Java创建一个基于Swing的应用程序,该应用程序使用了一些加密技术。但是javax.crypto.KeyGenerator.getInstance(“ AES”,“ BC”)给出了例外: 那是什么问题呢? 问题答案: 为了扩展来自GregS的评论,必须先对所有JCE提供者JAR进行签名,然后它们才能被Java运行时所信任。 BouncyCastle会忠实地提供已签名的JAR