我需要在 loadUserByUsername 方法中接收两个字符串参数。我不想使用弹簧安全身份验证,因为我自己的实现也需要密码(它是一个集成系统)。
是否可以在同一个类中创建另一个具有相同名称 loadUserByUsername(String username, String password) 的方法,然后调用该方法而不是另一个方法?
我需要在 loadUserByUsername 方法中接收两个字符串参数。我不想使用弹簧安全身份验证,因为我自己的实现也需要密码(它是一个集成系统)。
是否可以在同一个类中创建另一个具有相同名称 loadUserByUsername(String username, String password) 的方法,然后调用该方法而不是另一个方法?
我不明白这个要求,但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>
查看现有实现并找到最能满足您需求的实现。