mirror of
				https://github.com/optim-enterprises-bv/Mailu.git
				synced 2025-11-03 19:47:52 +00:00 
			
		
		
		
	Introduce AUTH_REQUIRE_TOKENS
This commit is contained in:
		@@ -72,6 +72,7 @@ DEFAULT_CONFIG = {
 | 
				
			|||||||
    'LOGO_URL': None,
 | 
					    'LOGO_URL': None,
 | 
				
			||||||
    'LOGO_BACKGROUND': None,
 | 
					    'LOGO_BACKGROUND': None,
 | 
				
			||||||
    # Advanced settings
 | 
					    # Advanced settings
 | 
				
			||||||
 | 
					    'AUTH_REQUIRE_TOKENS': False,
 | 
				
			||||||
    'API': False,
 | 
					    'API': False,
 | 
				
			||||||
    'WEB_API': '/api',
 | 
					    'WEB_API': '/api',
 | 
				
			||||||
    'API_TOKEN': None,
 | 
					    'API_TOKEN': None,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,6 +50,10 @@ def check_credentials(user, password, ip, protocol=None, auth_port=None, source_
 | 
				
			|||||||
                    app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: failed: badip: token-{token.id}: {token.comment or ""!r}')
 | 
					                    app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: failed: badip: token-{token.id}: {token.comment or ""!r}')
 | 
				
			||||||
                    return False # we can return directly here since the token is valid
 | 
					                    return False # we can return directly here since the token is valid
 | 
				
			||||||
    if user.check_password(password):
 | 
					    if user.check_password(password):
 | 
				
			||||||
 | 
					        if app.config['AUTH_REQUIRE_TOKENS'] and protocol != 'web':
 | 
				
			||||||
 | 
					            app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: failed: password but AUTH_REQUIRE_TOKENS=True')
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
            app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: success: password')
 | 
					            app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: success: password')
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
    app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: failed: badauth: {utils.truncated_pw_hash(password)}')
 | 
					    app.logger.info(f'Login attempt for: {user}/{protocol}/{auth_port} from: {ip}/{source_port}: failed: badauth: {utils.truncated_pw_hash(password)}')
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -214,7 +214,11 @@ Depending on your particular deployment you most probably will want to change th
 | 
				
			|||||||
Advanced settings
 | 
					Advanced settings
 | 
				
			||||||
-----------------
 | 
					-----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The ``API_TOKEN`` (default: None) configures the authentication token.
 | 
					The ``AUTH_REQUIRE_TOKENS`` (default: False) setting controls whether thick clients can
 | 
				
			||||||
 | 
					 authenticate using passwords or whether they are forced to use tokens/application
 | 
				
			||||||
 | 
					 specific passwords.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ``API_TOKEN`` (default: None) setting configures the authentication token.
 | 
				
			||||||
This token must be passed as request header to the API as authentication token.
 | 
					This token must be passed as request header to the API as authentication token.
 | 
				
			||||||
This is a mandatory setting for using the RESTful API.
 | 
					This is a mandatory setting for using the RESTful API.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								towncrier/newsfragments/3004.misc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								towncrier/newsfragments/3004.misc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Introduce AUTH_REQUIRE_TOKENS to enforce that thick clients use tokens instead of passwords
 | 
				
			||||||
		Reference in New Issue
	
	Block a user