shiro 사용자 정의 비밀번호 검증 방식

2825 단어 Shiro
1. shiro 보안 관리 설정 변경
      
      
	
            
          
          
      
      
      
        
           
            
      
      
       
      
       

2. 사용자 정의 암호 인증
/** 
 * Description:   shiro        ,  SimpleCredentialsMatcher HashedCredentialsMatcher 
 * @Author: wjl 
 * @Create Date: 2017-3-14 
 */  
public class CustomCredentialsMatcher extends SimpleCredentialsMatcher {  
      
    @Override   
    public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) {    
             
    UsernamePasswordToken token = (UsernamePasswordToken) authcToken;   
    Object accountCredentials = getCredentials(info);  
//  String pwd =encrypt32(String.valueOf(token.getPassword()));//md5 32     
    String pwdType =String.valueOf(token.getPassword());//               ,  JCIS      
    if(pwdType.length() == 32){  
    return equals(pwdType, accountCredentials); //    =32 ,   md5   ,  xx     32   。  
    }   
    String pwdUser =encrypt32(String.valueOf(token.getPassword()));//   32         。             32        bug  
    return equals(pwdUser, accountCredentials);  
    //                ,       true,      false   
    //return super.doCredentialsMatch(token, info) ;  
    } 
}

3. 비밀번호 인증 을 변경 하고 가 져 온 것 을 설명 합 니 다.
    /** 
     *        Hash        
     */  
//  @PostConstruct  
//  public void initCredentialsMatcher() {  
//      HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(SystemService.HASH_ALGORITHM);  
//      matcher.setHashIterations(SystemService.HASH_INTERATIONS);  
//      setCredentialsMatcher(matcher);  
//    //  setCredentialsMatcher(new CustomCredentialsMatcher());    
//  } 

 
주석 을 달 지 않 으 면 이런 식 으로 해도 된다.
    /** 
     *        Hash        
     */ 
    @PostConstruct  
    public void initCredentialsMatcher() {    
       setCredentialsMatcher(new CustomCredentialsMatcher());    
    } 

해결!
원본 링크:https://blog.csdn.net/kally_wang/article/details/67639772

좋은 웹페이지 즐겨찾기