X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=nokiav2%2Fdriver%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm%2Fnokia%2Fvnfm%2FCbamTokenProvider.java;h=c4a6645a979b5832712938ebb7fa4d9d72867b8d;hb=b425177693b1fd0063a3bb499c7d6183da9434aa;hp=df21e52daa6e69c9648e281554c8ab663f914711;hpb=c82c886215ed34953a51dff0710c6bd15cb80ee4;p=vfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm.git diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamTokenProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamTokenProvider.java index df21e52d..c4a6645a 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamTokenProvider.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CbamTokenProvider.java @@ -23,12 +23,11 @@ import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSocketFactory; import okhttp3.*; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.api.VnfmInfoProvider; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.GenericExternalSystemInfoProvider; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.VnfmCredentials; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.VnfmUrls; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions; -import org.onap.vnfmdriver.model.VnfmInfo; import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.buildFatalFailure; import static org.slf4j.LoggerFactory.getLogger; @@ -38,7 +37,6 @@ import static org.springframework.http.MediaType.APPLICATION_FORM_URLENCODED_VAL /** * Responsible for providing a token to access CBAM APIs */ -@Component //even if the value for grant type an user password is the same they do not mean the same thing //the duplication of this is intentional @SuppressWarnings("squid:S1192") @@ -49,15 +47,8 @@ public class CbamTokenProvider extends CbamSecurityProvider { private static final String CBAM_TOKEN_URL = "realms/cbam/protocol/openid-connect/token"; private static Logger logger = getLogger(CbamTokenProvider.class); private final VnfmInfoProvider vnfmInfoProvider; - @Value("${cbamKeyCloakBaseUrl}") - private String cbamKeyCloakBaseUrl; - @Value("${cbamUsername}") - private String username; - @Value("${cbamPassword}") - private String password; private volatile CurrentToken token; - @Autowired CbamTokenProvider(VnfmInfoProvider vnfmInfoProvider) { this.vnfmInfoProvider = vnfmInfoProvider; } @@ -66,11 +57,10 @@ public class CbamTokenProvider extends CbamSecurityProvider { * @return the token to access CBAM APIs (ex. 123456) */ public Interceptor getToken(String vnfmId) { - VnfmInfo vnfmInfo = vnfmInfoProvider.getVnfmInfo(vnfmId); - return new OauthInterceptor(getToken(vnfmInfo.getUserName(), vnfmInfo.getPassword())); + return new OauthInterceptor(getTokenInternal(vnfmId)); } - private String getToken(String clientId, String clientSecret) { + private String getTokenInternal(String vnfmId) { logger.trace("Requesting token for accessing CBAM API"); synchronized (this) { long now = SystemFunctions.systemFunctions().currentTimeMillis(); @@ -80,7 +70,7 @@ public class CbamTokenProvider extends CbamSecurityProvider { } else { logger.debug("Token expired {} ms ago", (now - token.refreshAfter)); } - refresh(clientId, clientSecret); + refresh(vnfmId); } else { logger.debug("Token will expire in {} ms", (now - token.refreshAfter)); } @@ -88,13 +78,17 @@ public class CbamTokenProvider extends CbamSecurityProvider { return token.token.accessToken; } - private void refresh(String clientId, String clientSecret) { + private void refresh(String vnfmId) { + VnfmUrls vnfmUrls = GenericExternalSystemInfoProvider.convert(vnfmInfoProvider.getVnfmInfo(vnfmId)); + VnfmCredentials vnfmCredentials = GenericExternalSystemInfoProvider.convertToCredentials(vnfmInfoProvider.getVnfmInfo(vnfmId)); + FormBody body = new FormBody.Builder() .add("grant_type", GRANT_TYPE) - .add("client_id", clientId) - .add("client_secret", clientSecret) - .add("username", username) - .add(CLIENT_SECRET, password).build(); + .add("client_id", vnfmCredentials.getClientId()) + .add("client_secret", vnfmCredentials.getClientSecret()) + .add("username", vnfmCredentials.getUsername()) + .add(CLIENT_SECRET, vnfmCredentials.getPassword()).build(); + String cbamKeyCloakBaseUrl = vnfmUrls.getAuthUrl(); Request request = new Request.Builder().url(cbamKeyCloakBaseUrl + CBAM_TOKEN_URL).addHeader(CONTENT_TYPE, APPLICATION_FORM_URLENCODED_VALUE).post(body).build(); OkHttpClient.Builder builder = new OkHttpClient.Builder(); SSLSocketFactory sslSocketFac = buildSSLSocketFactory();