Skip to content
Snippets Groups Projects
AuthenticationByPasswordService.java 2.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • MEDEDJI Setondji's avatar
    MEDEDJI Setondji committed
    package automaticmocking;
    
    import authentication.AuthenticationService;
    import authentication.Strength;
    import interfacemanualmocking.DirectoryInterface;
    import interfacemanualmocking.StrengthEstimationServiceInterface;
    
    public class AuthenticationByPasswordService implements AuthenticationService {
        private interfacemanualmocking.DirectoryInterface directory;
    
    
    
        private interfacemanualmocking.StrengthEstimationServiceInterface strengthEstimationService;
    
        public void setStrengthEstimationService(interfacemanualmocking.StrengthEstimationServiceInterface strengthEstimationService) {
            this.strengthEstimationService = strengthEstimationService;
        }
    
        public AuthenticationByPasswordService(interfacemanualmocking.DirectoryInterface directory, StrengthEstimationServiceInterface strengthEstimationService) {
            this.directory = directory;
            this.strengthEstimationService = strengthEstimationService;
        }
    
    
        @Override
        public boolean isAMatch(String identifier, String autenthicationData) {
            String match = directory.getMatch(identifier);
            return match.equals(autenthicationData);
        }
    
        @Override
        public Strength dataStrenth(String autenthicationData) {
            int datasize = autenthicationData.length();
            int alphabetSize = 142;
            int strength = strengthEstimationService.equivalentBitLength(alphabetSize,datasize);
    
            Strength result = null ;
            if( strength >= 0 && strength <= 49 ) {
                result = Strength.VERY_WEAK;
            }
            else if ( strength >= 50 && strength <= 79 ) {
                result = Strength.WEAK;
            }
            else if ( strength >= 80 && strength <= 99 ) {
                result = Strength.REGULAR;
            }
            else if ( strength >= 100 ) {
                result = Strength.STRONG;
            }
            return result;
        }
        public void setDirectory(DirectoryInterface directory) {
            this.directory = directory;
        }
    
    
    }
    
    
        //private StrengthEstimationServiceInterface dataStrenth(String autenthicationData) {
         //   int alphabetSize = 0;
           // int datasize = autenthicationData.length();
            //return strengthEstimationService.equivalentBitLength(alphabetSize, datasize);
        //}