mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
fixed api subscribe issue for device specific app creation
This commit is contained in:
parent
470500b80e
commit
c088a9bc93
@ -51,12 +51,4 @@ public interface ApiApplicationRegistrationService {
|
|||||||
@Path("register")
|
@Path("register")
|
||||||
Response register(RegistrationProfile registrationProfile);
|
Response register(RegistrationProfile registrationProfile);
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is used to unregister an API application.
|
|
||||||
* @param applicationName name of the application that needs to be unregistered.
|
|
||||||
* @return the response status of request.
|
|
||||||
*/
|
|
||||||
@DELETE
|
|
||||||
@Path("unregister")
|
|
||||||
Response unregister(@QueryParam("applicationName") String applicationName);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.apimgt.application.extension.api;
|
package org.wso2.carbon.apimgt.application.extension.api;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
@ -95,6 +96,8 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
return Response.status(Response.Status.NOT_ACCEPTABLE).entity("APIs(Tags) are not allowed to this user."
|
return Response.status(Response.Status.NOT_ACCEPTABLE).entity("APIs(Tags) are not allowed to this user."
|
||||||
).build();
|
).build();
|
||||||
}
|
}
|
||||||
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(PrivilegedCarbonContext.
|
||||||
|
getThreadLocalCarbonContext().getUserRealm().getRealmConfiguration().getAdminUserName());
|
||||||
String username = APIUtil.getAuthenticatedUser();
|
String username = APIUtil.getAuthenticatedUser();
|
||||||
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
||||||
String validityPeriod;
|
String validityPeriod;
|
||||||
@ -103,35 +106,27 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
} else {
|
} else {
|
||||||
validityPeriod = registrationProfile.getValidityPeriod();
|
validityPeriod = registrationProfile.getValidityPeriod();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String applicationName = "devicetype_app_" + StringUtils.join(registrationProfile.getTags(), "_");
|
||||||
ApiApplicationKey apiApplicationKey = apiManagementProviderService.generateAndRetrieveApplicationKeys(
|
ApiApplicationKey apiApplicationKey = apiManagementProviderService.generateAndRetrieveApplicationKeys(
|
||||||
registrationProfile.getApplicationName(), registrationProfile.getTags(),
|
applicationName, registrationProfile.getTags(),
|
||||||
ApiApplicationConstants.DEFAULT_TOKEN_TYPE, username,
|
ApiApplicationConstants.DEFAULT_TOKEN_TYPE, username,
|
||||||
registrationProfile.isAllowedToAllDomains(), validityPeriod);
|
registrationProfile.isAllowedToAllDomains(), validityPeriod);
|
||||||
return Response.status(Response.Status.CREATED).entity(apiApplicationKey.toString()).build();
|
return Response.status(Response.Status.CREATED).entity(apiApplicationKey.toString()).build();
|
||||||
} catch (APIManagerException e) {
|
} catch (APIManagerException e) {
|
||||||
String msg = "Error occurred while registering an application '"
|
String msg = "Error occurred while registering an application with apis '"
|
||||||
+ registrationProfile.getApplicationName() + "'";
|
+ StringUtils.join(registrationProfile.getTags(), ",") + "'";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("false").build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("false").build();
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
String msg = "Failed to retrieve the device service";
|
String msg = "Failed to retrieve the device service";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
}
|
} catch (UserStoreException e) {
|
||||||
}
|
String msg = "Failed to access user space.";
|
||||||
|
|
||||||
@Path("unregister")
|
|
||||||
@DELETE
|
|
||||||
public Response unregister(@QueryParam("applicationName") String applicationName) {
|
|
||||||
try {
|
|
||||||
String username = APIUtil.getAuthenticatedUser() + "@" + APIUtil.getTenantDomainOftheUser();
|
|
||||||
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
|
||||||
apiManagementProviderService.removeAPIApplication(applicationName, username);
|
|
||||||
return Response.status(Response.Status.ACCEPTED).build();
|
|
||||||
} catch (APIManagerException e) {
|
|
||||||
String msg = "Error occurred while removing the application '" + applicationName;
|
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -30,9 +30,6 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||||||
|
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
public class RegistrationProfile {
|
public class RegistrationProfile {
|
||||||
|
|
||||||
@XmlElement(required = true)
|
|
||||||
private String applicationName;
|
|
||||||
@XmlElement(required = true)
|
@XmlElement(required = true)
|
||||||
private String tags[];
|
private String tags[];
|
||||||
@XmlElement(required = true)
|
@XmlElement(required = true)
|
||||||
@ -40,14 +37,6 @@ public class RegistrationProfile {
|
|||||||
@XmlElement(required = false)
|
@XmlElement(required = false)
|
||||||
private String validityPeriod;
|
private String validityPeriod;
|
||||||
|
|
||||||
public String getApplicationName() {
|
|
||||||
return applicationName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApiApplicationName(String apiApplicationName) {
|
|
||||||
this.applicationName = apiApplicationName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String[] getTags() {
|
public String[] getTags() {
|
||||||
return tags;
|
return tags;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,16 +37,9 @@
|
|||||||
</Permission>
|
</Permission>
|
||||||
<Permission>
|
<Permission>
|
||||||
<name>Register application</name>
|
<name>Register application</name>
|
||||||
<path>/manage/api/subscribe</path>
|
<path>/device-mgt/device/api/subscribe</path>
|
||||||
<url>/register</url>
|
<url>/register</url>
|
||||||
<method>POST</method>
|
<method>POST</method>
|
||||||
<scope>application_user</scope>
|
<scope>application_user</scope>
|
||||||
</Permission>
|
</Permission>
|
||||||
<Permission>
|
|
||||||
<name>Delete application</name>
|
|
||||||
<path>/manage/api/subscribe</path>
|
|
||||||
<url>/unregister</url>
|
|
||||||
<method>DELETE</method>
|
|
||||||
<scope>application_user</scope>
|
|
||||||
</Permission>
|
|
||||||
</PermissionConfiguration>
|
</PermissionConfiguration>
|
||||||
@ -30,11 +30,12 @@ application.put("carbonServer", carbonServer);
|
|||||||
|
|
||||||
var permissions = {
|
var permissions = {
|
||||||
"/permission/admin/Login": ["ui.execute"],
|
"/permission/admin/Login": ["ui.execute"],
|
||||||
"/permission/admin/manage/api/subscribe": ["ui.execute"]
|
"/permission/admin/device-mgt/device/api/subscribe": ["ui.execute"]
|
||||||
};
|
};
|
||||||
|
|
||||||
var adminPermissions = {
|
var adminPermissions = {
|
||||||
"/permission/admin": ["ui.execute"]
|
"/permission/admin/device-mgt": ["ui.execute"],
|
||||||
|
"/permission/admin/manage/api": ["ui.execute"]
|
||||||
};
|
};
|
||||||
|
|
||||||
//On Startup, admin user will get both roles: devicemgt-admin and devicemgt-user
|
//On Startup, admin user will get both roles: devicemgt-admin and devicemgt-user
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user