2017-02-20 119 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進行密碼加密。但我不知道如何在Spring安全配置中配置passwordEncoder()如果我使用Md5PasswordEncoder進行密碼加密,如何在spring security config中配置passwordEncoder?

+0

MD5在2017年?你在開玩笑嗎? –

+0

你能建議任何安全加密嗎? –

回答

0

安全配置


    @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有emtpy構造函數,因此你可以簡單地

<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設置鹽源。只需將另一個屬性添加到引用您的salt-source-bean的配置中即可。

+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; 
    } 
相關問題