@@ -34,15 +34,32 @@ public function has($feature) {
3434
3535 /** Return credentials provider when credentials are defined */
3636 public function getCredentialsProvider ($ feature , $ vault ) {
37- if (( $ vault != NULL ) && $ this ->has ($ feature )) {
37+ if ($ this ->has ($ feature )) {
3838 if (!isset ($ this ->credentialProviders ->$ feature )) {
3939 if (!isset ($ this ->credentialProviders )) $ this ->credentialProviders = new \stdClass ;
4040 $ this ->credentialProviders ->$ feature = NULL ;
41- if (isset ($ this ->data ->$ feature ->security ) && ($ this ->data ->$ feature ->security ->type == 'vault ' )) {
42- $ path = $ this ->data ->$ feature ->security ->path ;
43- $ userKey = isset ($ this ->data ->$ feature ->security ->userKey ) ? $ this ->data ->$ feature ->security ->userKey : 'username ' ;
44- $ passKey = isset ($ this ->data ->$ feature ->security ->passKey ) ? $ this ->data ->$ feature ->security ->passKey : 'password ' ;
45- $ this ->credentialProviders ->$ feature = new \TgVault \CredentialsProvider ($ vault , $ path , $ userKey , $ passKey );
41+
42+ // A security object is defined
43+ if (isset ($ this ->data ->$ feature ->security )) {
44+ if ($ this ->data ->$ feature ->security ->type == 'vault ' ) {
45+ // CredentialsProvider is of type vault
46+ if ($ vault != NULL ) {
47+ $ path = $ this ->data ->$ feature ->security ->path ;
48+ $ userKey = isset ($ this ->data ->$ feature ->security ->userKey ) ? $ this ->data ->$ feature ->security ->userKey : 'username ' ;
49+ $ passKey = isset ($ this ->data ->$ feature ->security ->passKey ) ? $ this ->data ->$ feature ->security ->passKey : 'password ' ;
50+ $ this ->credentialProviders ->$ feature = new \TgVault \CredentialsProvider ($ vault , $ path , $ userKey , $ passKey );
51+ }
52+ } else if ($ this ->data ->$ feature ->security ->type == 'env ' ) {
53+ // CredentialsProvider is fed from environment variables
54+ $ userKey = isset ($ this ->data ->$ feature ->security ->userKey ) ? $ this ->data ->$ feature ->security ->userKey : strtoupper ($ feature ).'_USERNAME ' ;
55+ $ passKey = isset ($ this ->data ->$ feature ->security ->passKey ) ? $ this ->data ->$ feature ->security ->passKey : strtoupper ($ feature ).'_PASSWORD ' ;
56+ $ this ->credentialProviders ->$ feature = new \WebApp \Security \EnvCredentialsProvider ($ userKey , $ passKey );
57+ } else if ($ this ->data ->$ feature ->security ->type == 'k8secret ' ) {
58+ // CredentialsProvider is fed from Kubernetes Secret mounted
59+ $ userKey = isset ($ this ->data ->$ feature ->security ->userKey ) ? $ this ->data ->$ feature ->security ->userKey : 'username ' ;
60+ $ passKey = isset ($ this ->data ->$ feature ->security ->passKey ) ? $ this ->data ->$ feature ->security ->passKey : 'password ' ;
61+ $ this ->credentialProviders ->$ feature = new \WebApp \Security \K8SecretCredentialsProvider ($ this ->data ->$ feature ->security ->path , $ userKey , $ passKey );
62+ }
4663 }
4764 }
4865 return $ this ->credentialProviders ->$ feature ;
0 commit comments