我需要在loadUserByUsername方法中接收两个字符串参数。我不想使用spring安全认证,因为这个我自己的实现也需要密码(它是一个集成系统)。
是否可以在同一个类中创建另一个具有相同名称loadUserByUsername(String username,String password)的方法,并调用该方法而不是另一个方法?
答案 0 :(得分:1)
我不明白这个要求,但UserDetailsService.loadUserByUsername(String)
就好了。在调用此方法时,用户已经过身份验证,因此不再需要密码。因此,如果您在此时需要密码,那么您很可能会做错事。
如果您想根据用户名&amp ;;实现自己的身份验证机制您需要提供自己的密码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>
查看现有的实施方案,找到最贴近您需要的实施方案。