5c648eb5e3aa2f2f874952dfc192c816ce570921
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.cloud.authentication;
22
23 import org.onap.so.cloud.AuthenticationType;
24 import org.onap.so.cloud.CloudIdentity;
25 import org.onap.so.cloud.authentication.models.RackspaceAuthentication;
26 import org.onap.so.utils.CryptoUtils;
27 import org.springframework.stereotype.Component;
28
29 import com.woorea.openstack.keystone.model.Authentication;
30 import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
31
32 /**
33  * This factory manages all the wrappers associated to authentication types.
34  *
35  */
36 @Component
37 public final class AuthenticationMethodFactory {
38
39         public final Authentication getAuthenticationFor(CloudIdentity cloudIdentity) {
40                 if (cloudIdentity == null) {
41                         throw new IllegalArgumentException("Cloud identity cannot be null");
42                 }
43                 if ((cloudIdentity.getIdentityAuthenticationType() == null)|| ("".equals(cloudIdentity.getIdentityAuthenticationType().toString()))) {
44                         throw new IllegalArgumentException("Cloud identity authentication type cannot be null or empty, provided value is " + cloudIdentity.getIdentityAuthenticationType() + ".");
45                 }
46                 AuthenticationType authenticationType = cloudIdentity.getIdentityAuthenticationType();
47                 if (AuthenticationType.RACKSPACE_APIKEY.equals(authenticationType)) {
48                         return new RackspaceAuthentication (cloudIdentity.getMsoId (), CryptoUtils.decryptCloudConfigPassword(cloudIdentity.getMsoPass ()));
49                 } else {
50                         return new UsernamePassword (cloudIdentity.getMsoId (), CryptoUtils.decryptCloudConfigPassword(cloudIdentity.getMsoPass ()));
51                 }
52         }
53 }