0

我需要在 loadUserByUsername 方法中接收两个字符串参数。我不想使用弹簧安全身份验证,因为我自己的实现也需要密码(它是一个集成系统)。

是否可以在同一个类中创建另一个具有相同名称 loadUserByUsername(String username, String password) 的方法,然后调用该方法而不是另一个方法?

4

1 回答 1

1

我不明白这个要求,但UserDetailsService.loadUserByUsername(String)很好。在调用此方法时,用户已经通过身份验证,因此不再需要密码。因此,如果您此时需要密码,则很有可能您做错了什么。

如果您想实现自己的基于用户名和密码的身份验证机制,您需要提供自己的AuthenticationProvider.

<security:authentication-manager alias="authenticationManager">
  <security:authentication-provider ref="yourProvider" />
</security:authentication-manager>

<bean id="yourProvider" class="package.yourProviderClass">
  <!-- I suppose you need this, too -->
  <property name="userDetailsService" ref="yourUserDetailsService" />
</bean>

查看现有实现并找到最能满足您需求的实现。

在此处输入图像描述

于 2013-01-07T18:45:20.520 回答