Skip to content

Commit 23185e8

Browse files
authored
Merge pull request #12360 from ashera96/ai-features
Change authentication type to api-key and add settings api changes
2 parents eda75bc + 8451567 commit 23185e8

File tree

7 files changed

+52
-15
lines changed

7 files changed

+52
-15
lines changed

Diff for: components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIConstants.java

+1
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ public final class APIConstants {
446446
public static final String DOT = ".";
447447
public static final String DEFAULT = "DEFAULT";
448448
public static final String API_KEY_AUTH_TYPE = "API_KEY";
449+
public static final String API_KEY_AUTH = "API-KEY";
449450
public static final String EXP = "exp";
450451
public static final String JWT = "JWT";
451452
public static final String JWT_DEFAULT_AUDIENCE = "http://org.wso2.apimgt/gateway";

Diff for: components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java

+18-4
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@
152152
import org.wso2.carbon.apimgt.impl.IDPConfiguration;
153153
import org.wso2.carbon.apimgt.impl.PasswordResolverFactory;
154154
import org.wso2.carbon.apimgt.impl.RESTAPICacheConfiguration;
155+
import org.wso2.carbon.apimgt.impl.ai.MarketplaceAssistantConfigurationDto;
155156
import org.wso2.carbon.apimgt.impl.caching.CacheProvider;
156157
import org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO;
157158
import org.wso2.carbon.apimgt.impl.dao.CorrelationConfigDAO;
@@ -10386,6 +10387,18 @@ public static String getScopesAsString(Set<Scope> scopes) {
1038610387
return scopesStringBuilder.toString().trim();
1038710388
}
1038810389

10390+
/**
10391+
* Check whether Marketplace Assistant is enabled
10392+
*
10393+
* @return returns true if Marketplace Assistant feature is enabled, false if disabled.
10394+
*/
10395+
public static boolean isMarketplaceAssistantEnabled() {
10396+
APIManagerConfiguration configuration = ServiceReferenceHolder.getInstance().getAPIManagerConfigurationService()
10397+
.getAPIManagerConfiguration();
10398+
MarketplaceAssistantConfigurationDto configDto = configuration.getMarketplaceAssistantConfigurationDto();
10399+
return configDto.isEnabled();
10400+
}
10401+
1038910402
/**
1039010403
* Check whether API Chat feature is enabled
1039110404
*
@@ -10423,7 +10436,7 @@ public static String invokeAIService(String endpointConfigName, String authToken
1042310436
String authToken = config.getFirstProperty(authTokenConfigName);
1042410437
try {
1042510438
HttpPost preparePost = new HttpPost(endpoint + resource);
10426-
preparePost.setHeader(HttpHeaders.AUTHORIZATION, APIConstants.AUTHORIZATION_BEARER + authToken);
10439+
preparePost.setHeader(APIConstants.API_KEY_AUTH, authToken);
1042710440
preparePost.setHeader(HttpHeaders.CONTENT_TYPE, APIConstants.APPLICATION_JSON_MEDIA_TYPE);
1042810441
preparePost.setHeader("x-request-id", requestId);
1042910442
StringEntity requestEntity = new StringEntity(payload, ContentType.APPLICATION_JSON);
@@ -10462,11 +10475,12 @@ public static String invokeAIService(String endpointConfigName, String authToken
1046210475
* @return CloseableHttpResponse of the GET call
1046310476
* @throws APIManagementException
1046410477
*/
10465-
public static CloseableHttpResponse getMarketplaceChatApiCount(String endpoint, String resource)
10478+
public static CloseableHttpResponse getMarketplaceChatApiCount(String endpoint, String authToken, String resource)
1046610479
throws APIManagementException {
1046710480

1046810481
try{
1046910482
HttpGet apiCountGet = new HttpGet(endpoint + resource);
10483+
apiCountGet.setHeader(APIConstants.API_KEY_AUTH, authToken);
1047010484
URL url = new URL(endpoint);
1047110485
int port = url.getPort();
1047210486
String protocol = url.getProtocol();
@@ -10484,7 +10498,7 @@ public static String MarketplaceAssistantPostService(String endpoint, String aut
1048410498

1048510499
try {
1048610500
HttpPost preparePost = new HttpPost(endpoint + resource);
10487-
preparePost.setHeader(HttpHeaders.AUTHORIZATION, authToken);
10501+
preparePost.setHeader(APIConstants.API_KEY_AUTH, authToken);
1048810502
preparePost.setHeader(HttpHeaders.CONTENT_TYPE, APIConstants.APPLICATION_JSON_MEDIA_TYPE);
1048910503
StringEntity requestEntity = new StringEntity(payload, ContentType.APPLICATION_JSON);
1049010504
preparePost.setEntity(requestEntity);
@@ -10520,7 +10534,7 @@ public static void DeleteApi(String endpoint, String authToken,
1052010534
resourceWithPathParam = resourceWithPathParam.replace("{uuid}", uuid);
1052110535

1052210536
HttpDelete prepareDelete = new HttpDelete(resourceWithPathParam);
10523-
prepareDelete.setHeader(HttpHeaders.AUTHORIZATION, authToken);
10537+
prepareDelete.setHeader(APIConstants.API_KEY_AUTH, authToken);
1052410538

1052510539
URL url = new URL(endpoint);
1052610540
int port = url.getPort();

Diff for: components/apimgt/org.wso2.carbon.apimgt.rest.api.common/src/main/resources/devportal-api.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -5444,6 +5444,10 @@ components:
54445444
type: boolean
54455445
description: Checks if the auth token is provided for AI service usage.
54465446
default: false
5447+
marketplaceAssistantEnabled:
5448+
type: boolean
5449+
description: Specifies whether Marketplace Assistant feature is enabled.
5450+
default: true
54475451
ApplicationAttribute:
54485452
title: Application attributes
54495453
type: object

Diff for: components/apimgt/org.wso2.carbon.apimgt.rest.api.store.v1/src/gen/java/org/wso2/carbon/apimgt/rest/api/store/v1/dto/SettingsDTO.java

+23-2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public class SettingsDTO {
4141
private Integer passwordPolicyMaxLength = null;
4242
private Boolean apiChatEnabled = true;
4343
private Boolean aiAuthTokenProvided = false;
44+
private Boolean marketplaceAssistantEnabled = true;
4445

4546
/**
4647
**/
@@ -355,6 +356,24 @@ public void setAiAuthTokenProvided(Boolean aiAuthTokenProvided) {
355356
this.aiAuthTokenProvided = aiAuthTokenProvided;
356357
}
357358

359+
/**
360+
* Specifies whether Marketplace Assistant feature is enabled.
361+
**/
362+
public SettingsDTO marketplaceAssistantEnabled(Boolean marketplaceAssistantEnabled) {
363+
this.marketplaceAssistantEnabled = marketplaceAssistantEnabled;
364+
return this;
365+
}
366+
367+
368+
@ApiModelProperty(value = "Specifies whether Marketplace Assistant feature is enabled.")
369+
@JsonProperty("marketplaceAssistantEnabled")
370+
public Boolean isMarketplaceAssistantEnabled() {
371+
return marketplaceAssistantEnabled;
372+
}
373+
public void setMarketplaceAssistantEnabled(Boolean marketplaceAssistantEnabled) {
374+
this.marketplaceAssistantEnabled = marketplaceAssistantEnabled;
375+
}
376+
358377

359378
@Override
360379
public boolean equals(java.lang.Object o) {
@@ -382,12 +401,13 @@ public boolean equals(java.lang.Object o) {
382401
Objects.equals(passwordPolicyMinLength, settings.passwordPolicyMinLength) &&
383402
Objects.equals(passwordPolicyMaxLength, settings.passwordPolicyMaxLength) &&
384403
Objects.equals(apiChatEnabled, settings.apiChatEnabled) &&
385-
Objects.equals(aiAuthTokenProvided, settings.aiAuthTokenProvided);
404+
Objects.equals(aiAuthTokenProvided, settings.aiAuthTokenProvided) &&
405+
Objects.equals(marketplaceAssistantEnabled, settings.marketplaceAssistantEnabled);
386406
}
387407

388408
@Override
389409
public int hashCode() {
390-
return Objects.hash(grantTypes, scopes, applicationSharingEnabled, mapExistingAuthApps, apiGatewayEndpoint, monetizationEnabled, recommendationEnabled, isUnlimitedTierPaid, identityProvider, isAnonymousModeEnabled, isPasswordChangeEnabled, isJWTEnabledForLoginTokens, userStorePasswordPattern, passwordPolicyPattern, passwordPolicyMinLength, passwordPolicyMaxLength, apiChatEnabled, aiAuthTokenProvided);
410+
return Objects.hash(grantTypes, scopes, applicationSharingEnabled, mapExistingAuthApps, apiGatewayEndpoint, monetizationEnabled, recommendationEnabled, isUnlimitedTierPaid, identityProvider, isAnonymousModeEnabled, isPasswordChangeEnabled, isJWTEnabledForLoginTokens, userStorePasswordPattern, passwordPolicyPattern, passwordPolicyMinLength, passwordPolicyMaxLength, apiChatEnabled, aiAuthTokenProvided, marketplaceAssistantEnabled);
391411
}
392412

393413
@Override
@@ -413,6 +433,7 @@ public String toString() {
413433
sb.append(" passwordPolicyMaxLength: ").append(toIndentedString(passwordPolicyMaxLength)).append("\n");
414434
sb.append(" apiChatEnabled: ").append(toIndentedString(apiChatEnabled)).append("\n");
415435
sb.append(" aiAuthTokenProvided: ").append(toIndentedString(aiAuthTokenProvided)).append("\n");
436+
sb.append(" marketplaceAssistantEnabled: ").append(toIndentedString(marketplaceAssistantEnabled)).append("\n");
416437
sb.append("}");
417438
return sb.toString();
418439
}

Diff for: components/apimgt/org.wso2.carbon.apimgt.rest.api.store.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/store/v1/impl/MarketplaceAssistantApiServiceImpl.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,20 @@
3333
import org.wso2.carbon.apimgt.impl.internal.ServiceReferenceHolder;
3434
import org.wso2.carbon.apimgt.impl.utils.APIUtil;
3535
import org.wso2.carbon.apimgt.rest.api.store.v1.*;
36-
import org.wso2.carbon.apimgt.rest.api.store.v1.dto.*;
3736

38-
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
3937
import org.apache.cxf.jaxrs.ext.MessageContext;
4038

41-
import org.wso2.carbon.apimgt.rest.api.store.v1.dto.ErrorDTO;
4239
import org.wso2.carbon.apimgt.rest.api.store.v1.dto.MarketplaceAssistantApiCountResponseDTO;
4340
import org.wso2.carbon.apimgt.rest.api.store.v1.dto.MarketplaceAssistantRequestDTO;
4441
import org.wso2.carbon.apimgt.rest.api.store.v1.dto.MarketplaceAssistantResponseDTO;
4542
import org.wso2.carbon.apimgt.rest.api.util.utils.RestApiUtil;
4643

4744
import java.io.IOException;
48-
import java.util.List;
49-
50-
import java.io.InputStream;
5145

5246
import javax.ws.rs.core.Response;
53-
import javax.ws.rs.core.SecurityContext;
54-
5547

5648
public class MarketplaceAssistantApiServiceImpl implements MarketplaceAssistantApiService {
5749

58-
5950
private static final Log log = LogFactory.getLog(MarketplaceAssistantApiServiceImpl.class);
6051

6152
private static MarketplaceAssistantConfigurationDto marketplaceAssistantConfigurationDto;
@@ -122,6 +113,7 @@ public Response getMarketplaceAssistantApiCount(MessageContext messageContext) t
122113

123114
CloseableHttpResponse response = APIUtil.
124115
getMarketplaceChatApiCount(marketplaceAssistantConfigurationDto.getEndpoint(),
116+
marketplaceAssistantConfigurationDto.getAccessToken(),
125117
marketplaceAssistantConfigurationDto.getApiCountResource());
126118
int statusCode = response.getStatusLine().getStatusCode();
127119
if (statusCode == HttpStatus.SC_OK) {

Diff for: components/apimgt/org.wso2.carbon.apimgt.rest.api.store.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/store/v1/mappings/SettingsMappingUtil.java

+1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ public SettingsDTO fromSettingstoDTO(Boolean isUserAvailable, Boolean moneatizat
126126
settingsDTO.setPasswordPolicyMinLength(passwordPolicyMinLength);
127127
settingsDTO.setPasswordPolicyMaxLength(passwordPolicyMaxLength);
128128
settingsDTO.setApiChatEnabled(APIUtil.isApiChatEnabled());
129+
settingsDTO.setMarketplaceAssistantEnabled(APIUtil.isMarketplaceAssistantEnabled());
129130
settingsDTO.setAiAuthTokenProvided(APIUtil.isAuthTokenProvidedForAIFeatures());
130131

131132
if (isUserAvailable) {

Diff for: components/apimgt/org.wso2.carbon.apimgt.rest.api.store.v1/src/main/resources/devportal-api.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -5444,6 +5444,10 @@ components:
54445444
type: boolean
54455445
description: Checks if the auth token is provided for AI service usage.
54465446
default: false
5447+
marketplaceAssistantEnabled:
5448+
type: boolean
5449+
description: Specifies whether Marketplace Assistant feature is enabled.
5450+
default: true
54475451
ApplicationAttribute:
54485452
title: Application attributes
54495453
type: object

0 commit comments

Comments
 (0)