2017-02-20 31 views
0
Encryption 


Md5PasswordEncoder md5PasswordEncoder =new Md5PasswordEncoder(); 
     md5PasswordEncoder.encodePassword(userRegistrationInfo.getPassword(),AppConstants.MD5_PASSWORD_ENCODER_SALT); 




Spring Security Configuration 

@Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder()); 
    } 

@Bean 
    public PasswordEncoder passwordEncoder(){ 
     PasswordEncoder encoder = new BCryptPasswordEncoder(); 
     return encoder; 
    } 

Мне нужно использовать org.springframework.security.authentication.encoding.Md5PasswordEncoder для моего шифрования пароля. но я не знаю, как настроить парольEncoder() в конфигурации безопасности весныКак настроить парольEncoder в конфигурации безопасности весны, если я использую Md5PasswordEncoder для шифрования паролей?

+0

md5 в 2017 году? Ты шутишь? –

+0

вы можете предложить любое защищенное шифрование? –

ответ

0

Security Config


    @Autowired 
        public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
         auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder()); 
        } 


      @Bean 
       public PasswordEncoder passwordEncoder(){ 
        PasswordEncoder encoder = new FlasherPasswordEncoder(); 
        return encoder; 
       } 

PasswordEncoder MyOwn Реализация


 package com.flasher.config; 

     import org.springframework.security.authentication.encoding.Md5PasswordEncoder; 
     import org.springframework.security.crypto.password.PasswordEncoder; 

     public class FlasherPasswordEncoder implements PasswordEncoder { 

      @Override 
      public String encode(CharSequence rawPassword) { 
       return new Md5PasswordEncoder().encodePassword(rawPassword.toString(), AppConstants.MD5_PASSWORD_ENCODER_SALT); 

      } 

      @Override 
      public boolean matches(CharSequence rawPassword, String encodedPassword) { 
       return new Md5PasswordEncoder().encodePassword(rawPassword.toString(), AppConstants.MD5_PASSWORD_ENCODER_SALT) 
         .equals(encodedPassword); 
      } 

     } 
2
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 
    @Override 
    protected void configure(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
       .userDetailsService(customUserDetailsService) 
       .passwordEncoder(passwordEncoder()); 
    } 
} 



@Bean 
public PasswordEncoder passwordEncoder(){ 
    //implements PasswordEncoder and overide encode method with the MD5 protocol 
    return new MD5PasswordEncoder(); 
} 
0

Не знаете, в чем проблема. Md5PasswordEncoder имеет конструктор, так пуста вы можете просто

<bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder "> 
</bean> 

А затем передать его в AuthenticationProvider (например DaoAuthenticationProvider)

<bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider"> 
    <property name="userDetailsService"> 
     <ref bean="yourUserDetailsService"/> 
    </property> 
    <property name="passwordEncoder"> 
     <ref bean="passwordEncoder"/> 
    </property> 
</bean> 

UPDATE: оп заметил, что он использует соль. Это зависит также от поставщика услуг аутентификации. Если вы используете DaoAuthenticationProvider, вы можете использовать setSaltSource, чтобы установить источник соли. Просто добавьте другое свойство в конфигурацию, ссылаясь на ваш источник-источник.

+0

ах, теперь вы редактировали свой вопрос ... Я оставляю это здесь в любом случае – Rainer

+0

, но я использую соль для кодирования –

+0

Md5PasswordEncoder md5PasswordEncoder = new Md5PasswordEncoder(); md5PasswordEncoder.encodePassword (userRegistrationInfo.getPassword(), AppConstants.MD5_PASSWORD_ENCODER_SALT); –

0
@Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder()); 
    } 

    @Bean 
    public PasswordEncoder passwordEncoder(){ 
     PasswordEncoder encoder = new Md5PasswordEncoder(); 
     return encoder; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^