修改Pentaho的UserDetailsS​​ervice

时间:2013-01-07 16:18:43

标签: spring-security

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

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

1 个答案:

答案 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>

查看现有的实施方案,找到最贴近您需要的实施方案。

enter image description here