Browse Source
			 
			
			Validate YUBICO_SERVER string (#3003 ) 
 
 
			
				If the `YUBICO_SERVER` is defined to an empty string, the whole yubikey
implementation doesn't work anymore.
This PR adds a check for this variable that it at least starts with `https://`.
Resolves  #3003  
			
			
				 pull/3059/head 
			
			
		 
		
			
				
					
						 
						BlackDex 
					
					3 years ago  
					
				 
				
			 
		 
		
			
				
					 
					No known key found for this signature in database
					
						
							GPG Key ID:   58C80A2AA6C765E1 
						
					
				
			
		
		
		
	
		
			
				 1 changed files  with 
11 additions  and 
2 deletions 
			 
			
		 
		
			
				
					
					
					  
					src/config.rs 
				 
			
		 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					
						
						
							
								 
							 
						
						
					 
					@ -698,8 +698,17 @@ fn validate_config(cfg: &ConfigItems) -> Result<(), Error> { 
				
			 
			
		
	
		
		
			
				
					 
					 
					         err ! ( "All Duo options need to be set for global Duo support" )  
					 
					 
					         err ! ( "All Duo options need to be set for global Duo support" )  
				
			 
			
		
	
		
		
			
				
					 
					 
					     }  
					 
					 
					     }  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					     if   cfg . _enable_yubico   & &   cfg . yubico_client_id . is_some ( )   ! =   cfg . yubico_secret_key . is_some ( )   {  
					 
					 
					     if   cfg . _enable_yubico   {  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					         err ! ( "Both `YUBICO_CLIENT_ID` and `YUBICO_SECRET_KEY` need to be set for Yubikey OTP support" )  
					 
					 
					         if   cfg . yubico_client_id . is_some ( )   ! =   cfg . yubico_secret_key . is_some ( )   {  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 
					 
					 
					 
					 
					             err ! ( "Both `YUBICO_CLIENT_ID` and `YUBICO_SECRET_KEY` must be set for Yubikey OTP support" )  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					         }  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					         if   let   Some ( yubico_server )   =   & cfg . yubico_server   {  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					             let   yubico_server   =   yubico_server . to_lowercase ( ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					             if   ! yubico_server . starts_with ( "https://" )   {  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					                 err ! ( "`YUBICO_SERVER` must be a valid URL and start with 'https://'. Either unset this variable or provide a valid URL." )  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					             }  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					         }  
				
			 
			
		
	
		
		
			
				
					 
					 
					     }  
					 
					 
					     }  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					     if   cfg . _enable_smtp   {  
					 
					 
					     if   cfg . _enable_smtp   {