def test_authentication_with_data_denied_srai(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text( """ brain: security: authentication: classname: programy.security.authenticate.passthrough.PassThroughAuthenticationService denied_srai: AUTHENTICATION_FAILED """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("security", brain_config) self.assertIsNotNone(services_config) service_config = BrainSecurityAuthenticationConfiguration() service_config.load_config_section(yaml, services_config, ".") self.assertEqual( "programy.security.authenticate.passthrough.PassThroughAuthenticationService", service_config.classname) self.assertEqual("AUTHENTICATION_FAILED", service_config.denied_srai) self.assertEqual( BrainSecurityAuthenticationConfiguration.DEFAULT_ACCESS_DENIED, service_config.denied_text)
class BrainSecuritiesConfiguration(BaseSectionConfigurationData): def __init__(self): BaseSectionConfigurationData.__init__(self, "security") self._authorisation = None self._authentication = None @property def authorisation(self): return self._authorisation @property def authentication(self): return self._authentication def load_config_section(self, configuration_file, configuration, bot_root): securities = configuration_file.get_section(self.section_name, configuration) if securities is not None: self._authentication = BrainSecurityAuthenticationConfiguration() self._authentication.load_config_section(configuration_file, securities, bot_root) self._authorisation = BrainSecurityAuthorisationConfiguration() self._authorisation.load_config_section(configuration_file, securities, bot_root) def to_yaml(self, data, defaults=True): self.config_to_yaml(data, BrainSecurityAuthenticationConfiguration(), defaults) self.config_to_yaml(data, BrainSecurityAuthorisationConfiguration(), defaults)
class BrainSecuritiesConfiguration(BaseSectionConfigurationData): def __init__(self): BaseSectionConfigurationData.__init__(self, "security") self._authorisation = None self._authentication = None self._account_linker = None @property def authorisation(self): return self._authorisation @property def authentication(self): return self._authentication @property def account_linker(self): return self._account_linker def load_config_section(self, configuration_file, configuration, bot_root): securities = configuration_file.get_section(self.section_name, configuration) if securities is not None: self._authentication = BrainSecurityAuthenticationConfiguration() self._authentication.load_config_section(configuration_file, securities, bot_root) self._authorisation = BrainSecurityAuthorisationConfiguration() self._authorisation.load_config_section(configuration_file, securities, bot_root) self._account_linker = BrainSecurityAccountLinkerConfiguration() self._account_linker.load_config_section(configuration_file, securities, bot_root) def to_yaml(self, data, defaults=True): self.config_to_yaml(data, BrainSecurityAuthenticationConfiguration(), defaults) self.config_to_yaml(data, BrainSecurityAuthorisationConfiguration(), defaults) self.config_to_yaml(data, BrainSecurityAccountLinkerConfiguration(), defaults)
def test_authentication_with_data_neither_denied_srai_or_text(self): yaml = YamlConfigurationFile() self.assertIsNotNone(yaml) yaml.load_from_text(""" brain: security: authentication: classname: programy.security.authenticate.passthrough.PassThroughAuthenticationService """, ConsoleConfiguration(), ".") brain_config = yaml.get_section("brain") self.assertIsNotNone(brain_config) services_config = yaml.get_section("security", brain_config) self.assertIsNotNone(services_config) service_config = BrainSecurityAuthenticationConfiguration() service_config.load_config_section(yaml, services_config, ".") self.assertEqual("programy.security.authenticate.passthrough.PassThroughAuthenticationService", service_config.classname) self.assertEqual(BrainSecurityAuthenticationConfiguration.DEFAULT_ACCESS_DENIED, service_config.denied_text) self.assertEqual(BrainSecurityAuthenticationConfiguration.DEFAULT_ACCESS_DENIED, service_config.denied_text)