Spring security customize password encoder

4093 단어 Springsecurity
Spring security 는 우리 에 게 인터페이스 PasswordEncoder 를 제공 합 니 다. 이 인 터 페 이 스 를 실현 하면 사용자 정의 PasswordEncoder 를 정의 하여 응용의 안전 인증 과 높 은 안전성 을 강화 할 수 있 습 니 다.
 
하나.CustomizePasswordEncoder.java
 
package com.template.security;

import org.springframework.dao.DataAccessException;
import org.springframework.security.authentication.encoding.PasswordEncoder;

/**
 * Created by IntelliJ IDEA.
 * User: Zhong Gang
 * Date: 11-7-29
 * Time:   9:05
 * To change this template use File | Settings | File Templates.
 */
public class CustomizePasswordEncoder implements PasswordEncoder {

    /**
     *
     * @param rawPass  password which need to be encoded
     * @param salt
     * @return  the encoded password
     * @throws DataAccessException
     */
    @Override
    public String encodePassword(String rawPass, Object salt) throws DataAccessException {
        rawPass = "Zhong" + rawPass;
        rawPass = rawPass + "Gang";
        return rawPass;
    }

    /**
     *
     * @param encPass the password encoded
     * @param rawPass the password encoded before
     * @param salt
     * @return  true represents password is valid,false represents password is invalid
     * @throws DataAccessException
     */
    @Override
    public boolean isPasswordValid(String encPass, String rawPass, Object salt) throws DataAccessException {
        rawPass = "Zhong" + rawPass;
        rawPass = rawPass + "Gang";
        return encPass.equals(rawPass);
    }

}

 
첫 번 째 방법 은 입력 한 암 호 를 특수 처리 하여 암호 가 쉽게 풀 리 지 않도록 하고 응용 안전성 을 강화 하 는 것 이 며, 두 번 째 방법 은 입력 한 암호 가 응용 에 저 장 된 암호 와 일치 하 는 지 판단 하 는 것 이다.응용 프로그램 에 저 장 된 암 호 는 입력 한 암호 가 특수 처 리 를 거 쳐 생 성 되 기 때문에 입력 한 암호 와 저 장 된 암호 의 일치 성 을 어떻게 판단 하 는 지 스스로 정의 해 야 합 니 다.두 가지 방법 에서 우 리 는 이러한 형식의 매개 변수 salt 를 발견 할 수 있다. 즉, 소금 값 은 암호 화 에 사용 된다. 구체 적 인 과정 은 암호 와 소금 값 이 지정 한 내용 을 합 친 다음 에 md5 를 사용 하여 합 친 내용 을 연산 하 는 것 이다. 이렇게 연산 한 비밀 번 호 는 공격 자가 소금 값 을 모 르 기 때문에 암호 의 원문 을 반산 하기 어렵다.소금 값 을 사용 하려 면 사용자 정의 passwordEncoder 에서 소금 값 을 이용 하여 암호 화 하 는 방법 을 정의 하 는 것 외 에 security. xml 에서 소금 값 으로 무엇 을 사용 하 는 지 설정 해 야 합 니 다.아래 와 같다.
 

          

 
사용자 이름 을 소금 값 으로 사용 하 는 것 을 표시 합 니 다.
 
둘.security.xml
 
  
  
  

    

    
        
        
        

        
            
        

    

    
        
            
            
        
    

    


 설정 파일 에 password - encoder 요 소 를 추가 하여 사용자 정의 password Encoder 를 설정 합 니 다.

좋은 웹페이지 즐겨찾기