11"""
2- Copyright (c) 2020, 2023 , Oracle and/or its affiliates.
2+ Copyright (c) 2020, 2024 , Oracle and/or its affiliates.
33Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
44"""
55import unittest
66
7+ from wlsdeploy .aliases .model_constants import ALL
8+ from wlsdeploy .aliases .model_constants import DEFAULT_AUTHENTICATOR
9+ from wlsdeploy .aliases .model_constants import DEFAULT_CREDENTIAL_MAPPER
10+ from wlsdeploy .aliases .model_constants import XACML_AUTHORIZER
11+ from wlsdeploy .aliases .model_constants import XACML_ROLE_MAPPER
712from wlsdeploy .util .cla_utils import CommandLineArgUtil
813from wlsdeploy .util .model_context import ModelContext
914
1015
11- class ClaHelperTest (unittest .TestCase ):
16+ class ModelContextTest (unittest .TestCase ):
17+ __program_name = 'ModelContextTest'
1218
1319 def test_copy_model_context (self ):
14- __program_name = 'model_context_test'
1520 __oracle_home = '/my/oracle/home'
1621 __model_file = 'my_model_file.yaml'
1722
1823 arg_map = dict ()
1924 arg_map [CommandLineArgUtil .ORACLE_HOME_SWITCH ] = __oracle_home
20- model_context = ModelContext (__program_name , arg_map )
21- self .assertEquals (model_context .get_program_name (), __program_name )
25+ model_context = ModelContext (self . __program_name , arg_map )
26+ self .assertEquals (model_context .get_program_name (), self . __program_name )
2227 self .assertEquals (model_context .get_oracle_home (), __oracle_home )
2328 self .assertEquals (model_context .get_model_file (), None )
2429
2530 arg_map = dict ()
2631 arg_map [CommandLineArgUtil .MODEL_FILE_SWITCH ] = __model_file
2732 model_context_copy = model_context .copy (arg_map )
28- self .assertEquals (model_context_copy .get_program_name (), __program_name )
33+ self .assertEquals (model_context_copy .get_program_name (), self . __program_name )
2934 self .assertEquals (model_context_copy .get_oracle_home (), __oracle_home )
3035 self .assertEquals (model_context_copy .get_model_file (), __model_file )
3136
3237 def test_password_is_tokenized (self ):
33- __program_name = 'model_context_test'
34-
3538 __no_token_value = 'Welcome1'
3639 __complex_no_token_value = 'Abc@@def@@ghi'
3740 __secret_value = '@@SECRET:foo:username@@'
3841 __env_value = '@@ENV:FOO@@'
3942 __complex_token_value = '@@SECRET:foo:@@ENV:BAR@@@@'
4043
41- model_context = ModelContext (__program_name )
44+ model_context = ModelContext (self . __program_name )
4245 self .assertEquals (model_context .password_is_tokenized (None ), False )
4346 self .assertEquals (model_context .password_is_tokenized (__no_token_value ), False )
4447 self .assertEquals (model_context .password_is_tokenized (__complex_no_token_value ), False )
@@ -47,3 +50,25 @@ def test_password_is_tokenized(self):
4750 self .assertEquals (model_context .password_is_tokenized (__env_value ), True )
4851 self .assertEquals (model_context .password_is_tokenized (__secret_value ), True )
4952 self .assertEquals (model_context .password_is_tokenized (__complex_token_value ), True )
53+
54+ def test_discover_security_provider_data_scopes (self ):
55+ # Some security provider types contain passwords, requiring extra configuration for discover
56+ self ._try_security_provider_data_scope (True , DEFAULT_AUTHENTICATOR )
57+ self ._try_security_provider_data_scope (True , DEFAULT_CREDENTIAL_MAPPER )
58+ self ._try_security_provider_data_scope (True , ALL )
59+ self ._try_security_provider_data_scope (False , XACML_AUTHORIZER , XACML_ROLE_MAPPER )
60+ self ._try_security_provider_data_scope (True , XACML_AUTHORIZER , DEFAULT_CREDENTIAL_MAPPER )
61+ self ._try_security_provider_data_scope (True , XACML_ROLE_MAPPER , DEFAULT_CREDENTIAL_MAPPER )
62+
63+ def _try_security_provider_data_scope (self , expected_result , * args ):
64+ scopes_text = ',' .join (list (args ))
65+ arg_map = {
66+ CommandLineArgUtil .DISCOVER_SECURITY_PROVIDER_DATA_SWITCH : scopes_text
67+ }
68+ model_context = ModelContext (self .__program_name , arg_map )
69+
70+ test_text = "should not"
71+ if expected_result :
72+ test_text = "should"
73+ self .assertEquals (model_context .is_discover_security_provider_passwords (), expected_result ,
74+ "Security provider data scope " + scopes_text + " " + test_text + " discover passwords" )
0 commit comments