Merge branch 'release-2.0.x' of https://github.com/wso2/carbon-device-mgt into release-2.0.x

revert-70aa11f8
Hasunie 8 years ago
commit 40d8488466

@ -49,10 +49,6 @@
<warName>api#scep-mgt#v1.0</warName> <warName>api#scep-mgt#v1.0</warName>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
</plugin>
</plugins> </plugins>
</build> </build>

@ -1,19 +1,50 @@
package org.wso2.carbon.certificate.mgt.jaxrs.api; package org.wso2.carbon.certificate.mgt.jaxrs.api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.Authorization; import io.swagger.annotations.Authorization;
import io.swagger.annotations.AuthorizationScope; import io.swagger.annotations.AuthorizationScope;
import io.swagger.annotations.Extension;
import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.Info;
import io.swagger.annotations.SwaggerDefinition;
import io.swagger.annotations.Tag;
import org.wso2.carbon.apimgt.annotations.api.Scope; import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.certificate.mgt.jaxrs.beans.ErrorResponse; import org.wso2.carbon.certificate.mgt.jaxrs.beans.ErrorResponse;
import javax.ws.rs.*; import javax.ws.rs.Consumes;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
@SwaggerDefinition(
info = @Info(
version = "1.0.0",
title = "",
extensions = {
@Extension(properties = {
@ExtensionProperty(name = "name", value = "SCEP Management"),
@ExtensionProperty(name = "context", value = "/api/device-mgt/v1.0/scep"),
})
}
),
tags = {
@Tag(name = "scep_management", description = "SCEP management related REST-API. " +
"This can be used to manipulated device " +
"certificate related details.")
}
)
@Path("/scep") @Path("/scep")
@Api(value = "SCEP Management", description = "This API carries all device Certificate management " +
"related operations.")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface CertificateMgtService { public interface CertificateMgtService {
/** /**

@ -29,7 +29,7 @@ import javax.ws.rs.core.Response;
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = "name", value = "Certificate Management"), @ExtensionProperty(name = "name", value = "Certificate Management"),
@ExtensionProperty(name = "context", value = "api/certificate-mgt/v1.0/admin/certificates"), @ExtensionProperty(name = "context", value = "/api/certificate-mgt/v1.0/admin/certificates"),
}) })
} }
), ),

@ -34,8 +34,8 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence> * &lt;sequence>
* &lt;element name="jndiConfig" type="{}jndiConfig"/> * &lt;element name="JndiConfig" type="{}JndiConfig"/>
* &lt;element name="tableConfig" type="{}tableConfig"/> * &lt;element name="TableConfig" type="{}TableConfig"/>
* &lt;/sequence> * &lt;/sequence>
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -51,9 +51,10 @@ import javax.xml.bind.annotation.XmlType;
}) })
public class DataSource { public class DataSource {
@XmlElement(required = true) @XmlElement(name = "JndiConfig", required = true)
protected JndiConfig jndiConfig; protected JndiConfig jndiConfig;
@XmlElement(required = true)
@XmlElement(name = "TableConfig", required = true)
protected TableConfig tableConfig; protected TableConfig tableConfig;
/** /**

@ -30,7 +30,7 @@ import javax.xml.bind.annotation.XmlType;
* <p>The following schema fragment specifies the expected content contained within this class. * <p>The following schema fragment specifies the expected content contained within this class.
* *
* <pre> * <pre>
* &lt;complexType name="jndiConfig"> * &lt;complexType name="JndiConfig">
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence> * &lt;sequence>
@ -44,12 +44,12 @@ import javax.xml.bind.annotation.XmlType;
* *
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "jndiConfig", propOrder = { @XmlType(name = "JndiConfig", propOrder = {
"name" "name"
}) })
public class JndiConfig { public class JndiConfig {
@XmlElement(required = true) @XmlElement(name = "Name", required = true)
protected String name; protected String name;
/** /**

@ -46,7 +46,7 @@ import javax.xml.bind.annotation.XmlType;
* *
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "tableConfig", propOrder = { @XmlType(name = "TableConfig", propOrder = {
"table" "table"
}) })
public class TableConfig { public class TableConfig {

@ -3,6 +3,7 @@
"cachingEnabled": false, "cachingEnabled": false,
"debuggingEnabled": false, "debuggingEnabled": false,
"permissionRoot": "/", "permissionRoot": "/",
"portalURL": "https://${server.ip}:9445",
"loginPage": "cdmf.page.sign-in", "loginPage": "cdmf.page.sign-in",
"adminServicesUrl": "https://${server.ip}:${server.https_port}/admin/services/", "adminServicesUrl": "https://${server.ip}:${server.https_port}/admin/services/",
"authModule": { "authModule": {

@ -7,6 +7,7 @@
"httpsWebURL" : "%https.ip%", "httpsWebURL" : "%https.ip%",
"wssURL" : "https://localhost:9445", "wssURL" : "https://localhost:9445",
"wsURL" : "%http.ip%", "wsURL" : "%http.ip%",
"portalURL": "https://${server.ip}:9445",
"dashboardServerURL" : "%https.ip%", "dashboardServerURL" : "%https.ip%",
"androidEnrollmentDir": "/android-web-agent/enrollment", "androidEnrollmentDir": "/android-web-agent/enrollment",
"windowsEnrollmentDir": "/windows-web-agent/enrollment", "windowsEnrollmentDir": "/windows-web-agent/enrollment",

@ -72,7 +72,7 @@
</ul> </ul>
</div> </div>
<div id="certificate-table" data-user={{adminUser}}> <div id="certificate-table" class="hidden" data-user={{adminUser}}>
<table class="table table-striped table-hover list-table display responsive nowrap data-table grid-view" <table class="table table-striped table-hover list-table display responsive nowrap data-table grid-view"
id="certificate-grid"> id="certificate-grid">
<thead> <thead>

@ -142,12 +142,13 @@ function loadCertificates(searchParam) {
} }
if (viewModel.certificates.length > 0) { if (viewModel.certificates.length > 0) {
$('#certificate-table').removeClass('hidden');
$('#ast-container').removeClass('hidden'); $('#ast-container').removeClass('hidden');
$('#certificate-listing-status-msg').text(""); $('#certificate-listing-status-msg').text("");
var content = template(viewModel); var content = template(viewModel);
$("#ast-container").html(content); $("#ast-container").html(content);
} else { } else {
$('#ast-container').addClass('hidden'); $('#certificate-table').addClass('hidden');
$('#certificate-listing-status-msg').text('No certificate is available to be displayed.'); $('#certificate-listing-status-msg').text('No certificate is available to be displayed.');
$('#certificate-listing-status').removeClass('hidden'); $('#certificate-listing-status').removeClass('hidden');
} }

@ -31,7 +31,7 @@
{{/if}} {{/if}}
<div class="panel-body"> <div class="panel-body">
<form id="signInForm" method="POST" action="{{@app.context}}/uuf/login"> <form id="signInForm" method="POST" action="{{loginActionUrl}}">
<div class="form-group"> <div class="form-group">
<label for="username">Username *</label> <label for="username">Username *</label>
<input type="text" name="username" class="form-control" placeholder="Enter your username" <input type="text" name="username" class="form-control" placeholder="Enter your username"
@ -42,6 +42,9 @@
<input type="password" name="password" class="form-control" placeholder="Enter your password" <input type="password" name="password" class="form-control" placeholder="Enter your password"
required="required" /> required="required" />
</div> </div>
{{#if sessionDataKey}}
<input type="hidden" name="sessionDataKey" value="{{sessionDataKey}}" />
{{/if}}
{{#if referer}} {{#if referer}}
<input type="hidden" name="referer" value="{{referer}}" /> <input type="hidden" name="referer" value="{{referer}}" />
{{/if}} {{/if}}

@ -0,0 +1,28 @@
function onRequest(context) {
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
var authModuleConfigs = context.app.conf["authModule"];
var sessionDataKey = request.getParameter("sessionDataKey");
//if sso enabled and sessionDataKey is empty redirect
var ssoConfigs = authModuleConfigs["sso"];
if (ssoConfigs && (ssoConfigs["enabled"].toString() == "true") && !sessionDataKey) {
// SSO is enabled in Auth module.
var redirectUri = context.app.context + "/uuf/login";
var queryString = request.getQueryString();
if (queryString && (queryString.length > 0)) {
redirectUri = redirectUri + "?" + queryString;
}
response.sendRedirect(encodeURI(redirectUri));
exit();
}
var viewModel = {};
var loginActionUrl = context.app.context + "/uuf/login";
if (sessionDataKey) {
loginActionUrl = devicemgtProps["httpsURL"] + "/commonauth";
}
viewModel.sessionDataKey = sessionDataKey;
viewModel.loginActionUrl = loginActionUrl;
return viewModel;
}

@ -1,5 +1,6 @@
{ {
"version": "1.0.0", "version": "1.0.0",
"layout": "uuf.layout.sign-in",
"uri": "/login", "uri": "/login",
"extends": "uuf.page.sign-in" "isAnonymous": true
} }

@ -51,7 +51,10 @@
var operationsLogTable = "#operations-log-table"; var operationsLogTable = "#operations-log-table";
if (update) { if (update) {
operationTable = $(operationsLogTable).DataTable(); operationTable = $(operationsLogTable).DataTable();
operationTable.ajax.reload(false); $("#operations-spinner").removeClass("hidden");
operationTable.ajax.reload(function ( json ) {
$("#operations-spinner").addClass("hidden");
}, false);
return; return;
} }
operationTable = $(operationsLogTable).datatables_extended({ operationTable = $(operationsLogTable).datatables_extended({
@ -142,14 +145,14 @@
function (template) { function (template) {
var getEffectivePolicyURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/effective-policy"; var getEffectivePolicyURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/effective-policy";
var getDeviceComplianceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/compliance-data"; var getDeviceComplianceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/compliance-data";
invokerUtil.get( invokerUtil.get(
getEffectivePolicyURL, getEffectivePolicyURL,
// success-callback // success-callback
function (data, textStatus, jqXHR) { function (data, textStatus, jqXHR) {
if (jqXHR.status == 200 && data) { if (jqXHR.status == 200) {
data = JSON.parse(data);
$("#policy-spinner").addClass("hidden"); $("#policy-spinner").addClass("hidden");
if(data){
data = JSON.parse(data);
if (data["active"] == true) { if (data["active"] == true) {
activePolicy = data; activePolicy = data;
invokerUtil.get( invokerUtil.get(
@ -191,6 +194,7 @@
); );
} }
} }
}
}, },
// error-callback // error-callback
function () { function () {

@ -283,9 +283,14 @@
<div id="policy-platform-main-error-msg" class="alert alert-danger hidden" role="alert"> <div id="policy-platform-main-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span> <i class="icon fw fw-error"></i><span></span>
</div> </div>
{{#unless types}}
<h3><i class="icon fw fw-warning"></i> No compatible device types have been installed.
Install device types to add policies.</h3>
{{/unless}}
<div class="row wr-tile-buttons-list"> <div class="row wr-tile-buttons-list">
<div class="wr-input-control"> <div class="wr-input-control">
<ul class="tile-buttons row"> <ul class="tile-buttons row">
{{#if types}}
{{#each types}} {{#each types}}
<li class="col-xs-12 col-sm-12 col-md-4 col-lg-4" <li class="col-xs-12 col-sm-12 col-md-4 col-lg-4"
style="margin-top: 5px; margin-bottom: 5px;"> style="margin-top: 5px; margin-bottom: 5px;">
@ -300,6 +305,7 @@
</a> </a>
</li> </li>
{{/each}} {{/each}}
{{/if}}
</ul> </ul>
</div> </div>
</div> </div>

@ -0,0 +1,142 @@
/*
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
var policy = {};
var displayPolicy = function (policyPayloadObj) {
policy["name"] = policyPayloadObj["policyName"];
policy["platform"] = policyPayloadObj["profile"]["deviceType"];
// updating next-page wizard title with selected platform
$("#policy-heading").text(policy["platform"].toUpperCase() + " POLICY - " + policy["name"].toUpperCase());
$("#policy-platform").text(policy["platform"].toUpperCase());
$("#policy-assignment").text(policyPayloadObj.deviceGroups);
$("#policy-action").text(policyPayloadObj.compliance.toUpperCase());
$("#policy-description").text(policyPayloadObj["description"]);
var policyStatus = "Active";
if (policyPayloadObj["active"] == true && policyPayloadObj["updated"] == true) {
policyStatus = '<i class="fw fw-warning icon-success"></i> Active/Updated</span>';
} else if (policyPayloadObj["active"] == true && policyPayloadObj["updated"] == false) {
policyStatus = '<i class="fw fw-ok icon-success"></i> Active</span>';
} else if (policyPayloadObj["active"] == false && policyPayloadObj["updated"] == true) {
policyStatus = '<i class="fw fw-warning icon-warning"></i> Inactive/Updated</span>';
} else if (policyPayloadObj["active"] == false && policyPayloadObj["updated"] == false) {
policyStatus = '<i class="fw fw-error icon-danger"></i> Inactive</span>';
}
$("#policy-status").html(policyStatus);
if (policyPayloadObj.users.length > 0) {
$("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", "));
} else {
$("#users-row").addClass("hidden");
}
if (policyPayloadObj.deviceGroups.length > 0) {
debugger;
var deviceGroups = policyPayloadObj.deviceGroups;
var assignedGroups = [];
for (var index in deviceGroups) {
if (deviceGroups.hasOwnProperty(index)) {
assignedGroups.push(deviceGroups[index].name);
}
}
$("#policy-groups").text(assignedGroups.toString().split(",").join(", "));
} else {
$("#policy-groups").text("NONE");
}
if (policyPayloadObj.roles.length > 0) {
$("#policy-roles").text(policyPayloadObj.roles.toString().split(",").join(", "));
} else {
$("#roles-row").addClass("hidden");
}
var deviceType = policy["platform"];
var policyOperationsTemplateSrc = context + '/public/cdmf.unit.device.type.' + deviceType +
'.policy-view/templates/' + deviceType + '-policy-view.hbs';
var policyOperationsScriptSrc = context + '/public/cdmf.unit.device.type.' + deviceType +
'.policy-view/js/' + deviceType + '-policy-view.js';
var policyOperationsStylesSrc = context + '/public/cdmf.unit.device.type.' + deviceType +
'.policy-view/css/' + deviceType + '-policy-view.css';
var policyOperationsTemplateCacheKey = deviceType + '-policy-operations';
$.isResourceExists(policyOperationsTemplateSrc, function (status) {
if (status) {
$.template(policyOperationsTemplateCacheKey, policyOperationsTemplateSrc, function (template) {
var content = template();
$("#device-type-policy-operations").html(content).removeClass("hidden");
$(".policy-platform").addClass("hidden");
$.isResourceExists(policyOperationsScriptSrc, function (status) {
if (status) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = policyOperationsScriptSrc;
$(".wr-advance-operations").prepend(script);
var previouslyConfiguredOperations = operationModule.populateProfile(policy["platform"],
policyPayloadObj["profile"]["profileFeaturesList"]);
polulateProfileOperations(previouslyConfiguredOperations);
}
});
});
$.isResourceExists(policyOperationsStylesSrc, function (status) {
if (status) {
var style = document.createElement('link');
style.type = 'text/css';
style.rel = 'stylesheet';
style.href = policyOperationsStylesSrc;
$(".wr-advance-operations").prepend(style);
}
});
} else {
$("#generic-policy-operations").removeClass("hidden");
}
$(".wr-advance-operations-init").addClass("hidden");
});
};
/**
* This method will return query parameter value given its name.
* @param name Query parameter name
* @returns {string} Query parameter value
*/
var getParameterByName = function (name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
};
$(document).ready(function () {
var policyPayloadObj;
// Adding initial state of wizard-steps.
invokerUtil.get(
"/api/device-mgt/v1.0/policies/" + getParameterByName("id"),
// on success
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200 && data) {
policyPayloadObj = JSON.parse(data);
displayPolicy(policyPayloadObj);
}
},
// on error
function (jqXHR) {
console.log(jqXHR);
// should be redirected to an error page
}
);
});

@ -24,8 +24,8 @@
<td id="policy-platform" style="padding:10px 15px;"></td> <td id="policy-platform" style="padding:10px 15px;"></td>
</tr> </tr>
<tr role="row" class="odd"> <tr role="row" class="odd">
<td class="sorting_1" style="padding:10px 15px;">Ownership</td> <td class="sorting_1" style="padding:10px 15px;">Groups</td>
<td id="policy-assignment" style="padding:10px 15px;"></td> <td id="policy-groups" style="padding:10px 15px;"></td>
</tr> </tr>
<tr role="row" class="even"> <tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px;">Action upon non-compliance</td> <td class="sorting_1" style="padding:10px 15px;">Action upon non-compliance</td>
@ -60,12 +60,17 @@
<i class="icon fw fw-error"></i><span></span> <i class="icon fw fw-error"></i><span></span>
</div> </div>
<div class="wr-advance-operations"> <div class="wr-advance-operations">
<div class="wr-advance-operations-init"> <div class='wr-advance-operations-init'>
<br> <br/>
<i class="fw fw-settings fw-spin fw-2x"></i> <i class='fw fw-settings fw-spin fw-2x'></i>
Loading platform features . . . Loading Platform Features . . .
<br> <br/>
<br> <br/>
</div>
<div id="device-type-policy-operations" class="hidden">
</div>
<div id="generic-policy-operations" class="hidden">
{{unit "cdmf.unit.device.type.generic.policy-wizard"}}
</div> </div>
</div> </div>
</div> </div>
@ -82,15 +87,5 @@
{{/if}} {{/if}}
{{/zone}} {{/zone}}
{{#zone "bottomJs"}} {{#zone "bottomJs"}}
<!--suppress HtmlUnknownTarget -->
<script id="hidden-operations-ios" src="{{@unit.publicUri}}/templates/hidden-operations-ios.hbs"
type="text/x-handlebars-template"></script>
<!--suppress HtmlUnknownTarget -->
<script id="hidden-operations-android" src="{{@unit.publicUri}}/templates/hidden-operations-android.hbs"
type="text/x-handlebars-template"></script>
<!--suppress HtmlUnknownTarget -->
<script id="hidden-operations-windows" src="{{@unit.publicUri}}/templates/hidden-operations-windows.hbs"
type="text/x-handlebars-template"></script>
{{js "js/view.js"}} {{js "js/view.js"}}
{{/zone}} {{/zone}}

@ -55,5 +55,52 @@
"url": "/api/operation/*", "url": "/api/operation/*",
"path": "/api/operation-api.jag" "path": "/api/operation-api.jag"
} }
],
"filters": [
{
"name": "URLBasedCachePreventionFilter",
"class": "org.wso2.carbon.ui.filters.cache.URLBasedCachePreventionFilter"
},
{
"name":"HttpHeaderSecurityFilter",
"class":"org.apache.catalina.filters.HttpHeaderSecurityFilter",
"params" : [{"name" : "hstsEnabled", "value" : "false"}]
}
],
"filterMappings": [
{
"name": "URLBasedCachePreventionFilter",
"url": "/api/*"
},
{
"name":"HttpHeaderSecurityFilter",
"url":"*"
}
],
"listeners" : [
{
"class" : "org.owasp.csrfguard.CsrfGuardServletContextListener"
},
{
"class" : "org.owasp.csrfguard.CsrfGuardHttpSessionListener"
}
],
"servlets" : [
{
"name" : "JavaScriptServlet",
"class" : "org.owasp.csrfguard.servlet.JavaScriptServlet"
}
],
"servletMappings" : [
{
"name" : "JavaScriptServlet",
"url" : "/csrf.js"
}
],
"contextParams" : [
{
"name" : "Owasp.CsrfGuard.Config",
"value" : "/repository/conf/security/Owasp.CsrfGuard.Carbon.properties"
}
] ]
} }

@ -244,6 +244,7 @@ var responsiveTextRatio = 0.2,
initComplete: function(){ initComplete: function(){
var ROW_SELECTED_CLASS = 'DTTT_selected'; var ROW_SELECTED_CLASS = 'DTTT_selected';
var table = this;
this.api().columns().every(function(){ this.api().columns().every(function(){
@ -335,9 +336,11 @@ var responsiveTextRatio = 0.2,
/** /**
* append advance operations to list table toolbar * append advance operations to list table toolbar
*/ */
if (table.hasClass('dataTables_toolbar')) {
$('.dataTable.list-table').closest('.dataTables_wrapper').find('.dataTablesTop .dataTables_toolbar').html( $('.dataTable.list-table').closest('.dataTables_wrapper').find('.dataTablesTop .dataTables_toolbar').html(
getAdvanceToolBar() getAdvanceToolBar()
); );
}
//Sorting dropdown menu select function //Sorting dropdown menu select function
$('.dataTables_wrapper .sort-list li a').click(function() { $('.dataTables_wrapper .sort-list li a').click(function() {

@ -1808,7 +1808,7 @@
<tomcat.jdbc.pooling.version>7.0.34.wso2v2</tomcat.jdbc.pooling.version> <tomcat.jdbc.pooling.version>7.0.34.wso2v2</tomcat.jdbc.pooling.version>
<!-- Carbon Deployment --> <!-- Carbon Deployment -->
<carbon.deployment.version>4.7.0</carbon.deployment.version> <carbon.deployment.version>4.7.2</carbon.deployment.version>
<!-- Carbon Identity --> <!-- Carbon Identity -->
<carbon.identity.framework.version>5.2.2</carbon.identity.framework.version> <carbon.identity.framework.version>5.2.2</carbon.identity.framework.version>
@ -1816,10 +1816,10 @@
<identity.inbound.auth.saml.version>5.1.1</identity.inbound.auth.saml.version> <identity.inbound.auth.saml.version>5.1.1</identity.inbound.auth.saml.version>
<!-- Carbon Multi-tenancy --> <!-- Carbon Multi-tenancy -->
<carbon.multitenancy.version>4.6.0</carbon.multitenancy.version> <carbon.multitenancy.version>4.6.1</carbon.multitenancy.version>
<!-- Carbon Governance --> <!-- Carbon Governance -->
<carbon.governance.version>4.6.4</carbon.governance.version> <carbon.governance.version>4.6.5</carbon.governance.version>
<!-- Axiom --> <!-- Axiom -->
<axiom.version>1.2.11-wso2v10</axiom.version> <axiom.version>1.2.11-wso2v10</axiom.version>
@ -1845,7 +1845,7 @@
<carbon.analytics.common.version.range>[5.1.3,6.0.0)</carbon.analytics.common.version.range> <carbon.analytics.common.version.range>[5.1.3,6.0.0)</carbon.analytics.common.version.range>
<!-- Carbon Registry --> <!-- Carbon Registry -->
<carbon.registry.version>4.5.6</carbon.registry.version> <carbon.registry.version>4.5.8</carbon.registry.version>
<carbon.registry.imp.pkg.version.range>[4.4.8, 5.0.0)</carbon.registry.imp.pkg.version.range> <carbon.registry.imp.pkg.version.range>[4.4.8, 5.0.0)</carbon.registry.imp.pkg.version.range>
<!--CXF properties--> <!--CXF properties-->

Loading…
Cancel
Save