mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Bumping identity dependencies
This commit is contained in:
commit
64da9479a1
@ -31,6 +31,7 @@ import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import io.swagger.annotations.ResponseHeader;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Permission;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper;
|
||||
@ -562,5 +563,9 @@ public interface PolicyManagementService {
|
||||
required = true)
|
||||
List<PriorityUpdatedPolicyWrapper> priorityUpdatedPolicies);
|
||||
|
||||
@GET
|
||||
@Path("/effective-policy/{deviceType}/{deviceId}")
|
||||
@Permission(name = "Get Effective Policy of Devices", permission = "/device-mgt/policies/view")
|
||||
Response getEffectivePolicy(@PathParam("deviceId") String deviceId, @PathParam("deviceType") String deviceType);
|
||||
|
||||
}
|
||||
|
||||
@ -373,4 +373,29 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
|
||||
}
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/effective-policy/{deviceType}/{deviceId}")
|
||||
@Override
|
||||
public Response getEffectivePolicy(@PathParam("deviceId") String deviceId, @PathParam("deviceType") String deviceType) {
|
||||
PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
|
||||
final org.wso2.carbon.policy.mgt.common.Policy policy;
|
||||
try {
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setId(deviceId);
|
||||
deviceIdentifier.setType(deviceType);
|
||||
policy = policyManagementService.getAppliedPolicyToDevice(deviceIdentifier);
|
||||
if (policy == null) {
|
||||
return Response.status(Response.Status.NOT_FOUND).entity(
|
||||
new ErrorResponse.ErrorResponseBuilder().setMessage(
|
||||
"No policy found for device ID '" + deviceId + "'"+ deviceId).build()).build();
|
||||
}
|
||||
} catch (PolicyManagementException e) {
|
||||
String msg = "Error occurred while retrieving policy corresponding to the id '" + deviceType + "'"+ deviceId;
|
||||
log.error(msg, e);
|
||||
return Response.serverError().entity(
|
||||
new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(policy).build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -33,6 +33,7 @@ public class PolicyConfiguration {
|
||||
private int minRetriesToMarkUnreachable;
|
||||
private int minRetriesToMarkInactive;
|
||||
private List<String> platforms;
|
||||
private String policyEvaluationPoint;
|
||||
|
||||
@XmlElement(name = "MonitoringClass", required = true)
|
||||
public String getMonitoringClass() {
|
||||
@ -98,4 +99,13 @@ public class PolicyConfiguration {
|
||||
this.platforms = platforms;
|
||||
}
|
||||
|
||||
@XmlElement(name = "PolicyEvaluationPoint", required = true)
|
||||
public String getPolicyEvaluationPointName() {
|
||||
return policyEvaluationPoint;
|
||||
}
|
||||
|
||||
public void setPolicyEvaluationPointName(String policyEvaluationPointName) {
|
||||
this.policyEvaluationPoint = policyEvaluationPointName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
{{!
|
||||
Copyright (c) 2016, 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.
|
||||
}}
|
||||
|
||||
{{unit "cdmf.unit.ui.title" pageTitle="Policy Management | View Policy"}}
|
||||
|
||||
{{#zone "breadcrumbs"}}
|
||||
<li>
|
||||
<a href="{{@app.context}}/">
|
||||
<i class="icon fw fw-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
<a href="{{@app.context}}/policies">
|
||||
Policies
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
View
|
||||
</a>
|
||||
</li>
|
||||
{{/zone}}
|
||||
|
||||
{{#zone "content"}}
|
||||
{{unit "cdmf.unit.device.operation-mod"}}
|
||||
{{unit "cdmf.unit.effective-policy.view"}}
|
||||
{{/zone}}
|
||||
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 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.
|
||||
*/
|
||||
|
||||
function onRequest(context) {
|
||||
var utility = require("/app/modules/utility.js")["utility"];
|
||||
var deviceType = context.uriParams.deviceType;
|
||||
var deviceId = context.uriParams.deviceId;
|
||||
return {"deviceTypePolicyView": utility.getTenantedDeviceUnitName(deviceType, deviceId,"policy-view")};
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"uri": "/policy/effective-policy/",
|
||||
"layout": "cdmf.layout.default"
|
||||
}
|
||||
@ -16,7 +16,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
var deviceId = $(".device-id");
|
||||
var deviceIdentifier = deviceId.data("deviceid");
|
||||
var deviceType = deviceId.data("type");
|
||||
@ -49,6 +48,7 @@
|
||||
|
||||
function loadOperationsLog(update) {
|
||||
var operationsLogTable = "#operations-log-table";
|
||||
|
||||
if (update) {
|
||||
operationTable = $(operationsLogTable).DataTable();
|
||||
$("#operations-spinner").removeClass("hidden");
|
||||
@ -163,6 +163,8 @@
|
||||
var viewModel = {};
|
||||
viewModel["policy"] = activePolicy;
|
||||
viewModel["deviceType"] = deviceType;
|
||||
viewModel["deviceId"] = deviceId;
|
||||
viewModel["appContext"] = context;
|
||||
data = JSON.parse(data);
|
||||
var content;
|
||||
if (data["complianceData"]) {
|
||||
@ -206,5 +208,3 @@
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
}());
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<span class="list-group-item-actions">
|
||||
<a href="/policy/view?id={{policy.id}}"
|
||||
<a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}"
|
||||
class="cu-btn-inner policy-view-link" data-id="{{id}}">
|
||||
<span class="fw-stack">
|
||||
<i class="fw fw-ring fw-stack-2x"></i>
|
||||
|
||||
@ -0,0 +1,152 @@
|
||||
/*
|
||||
* 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 == null) {
|
||||
$("#policy-users").text("NONE");
|
||||
}
|
||||
else if (policyPayloadObj.users.length > 0) {
|
||||
$("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", "));
|
||||
} else {
|
||||
$("#users-row").addClass("hidden");
|
||||
}
|
||||
|
||||
if (policyPayloadObj.deviceGroups == null) {
|
||||
$("#policy-groups").text("NONE");
|
||||
} else 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 == null) {
|
||||
$("#policy-roles").text("NONE");
|
||||
}
|
||||
else 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);
|
||||
/*
|
||||
This method should be implemented in the relevant plugin side and should include the logic to
|
||||
populate the policy profile in the plugin specific UI.
|
||||
*/
|
||||
polulateProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$.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/effective-policy/" + getParameterByName("type") + "/" + 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
|
||||
}
|
||||
);
|
||||
});
|
||||
@ -0,0 +1,83 @@
|
||||
{{#zone "content"}}
|
||||
{{!--#if isAuthorized--}}
|
||||
{{#defineZone "policy-profile-top"}}
|
||||
<div class="row wr-device-board">
|
||||
<div class="col-lg-12 wr-secondary-bar">
|
||||
<label id="policy-heading" class="device-id device-select">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
{{/defineZone}}
|
||||
|
||||
<!-- #page-content-wrapper -->
|
||||
<div class="page-content-wrapper">
|
||||
<div class="row no-gutter add-padding-5x add-margin-top-5x" style="border: 1px solid #e4e4e4;">
|
||||
<div class="media">
|
||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
|
||||
Policy Overview
|
||||
</div>
|
||||
{{#defineZone "policy-detail-properties"}}
|
||||
<table class="table table-responsive table-striped" id="members">
|
||||
<tbody>
|
||||
<tr role="row" class="even">
|
||||
<td class="sorting_1" style="padding:10px 15px; width: 14%;">Platform</td>
|
||||
<td id="policy-platform" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
<tr role="row" class="odd">
|
||||
<td class="sorting_1" style="padding:10px 15px;">Groups</td>
|
||||
<td id="policy-groups" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
<tr role="row" class="even">
|
||||
<td class="sorting_1" style="padding:10px 15px;">Action upon non-compliance</td>
|
||||
<td id="policy-action" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
<tr role="row" class="even">
|
||||
<td class="sorting_1" style="padding:10px 15px;">Status</td>
|
||||
<td id="policy-status" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
<tr role="row" id="users-row" class="even">
|
||||
<td class="sorting_1" style="padding:10px 15px;">Assigned Users</td>
|
||||
<td id="policy-users" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
<tr role="row" id="roles-row" class="even">
|
||||
<td class="sorting_1" style="padding:10px 15px;">Assigned Roles</td>
|
||||
<td id="policy-roles" style="padding:10px 15px;"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{{/defineZone}}
|
||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">Description
|
||||
</div>
|
||||
<div class="add-margin-top-4x">
|
||||
<div id="policy-description" class="panel-title-description"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
|
||||
Profile Information
|
||||
</div>
|
||||
<div class="add-margin-top-4x">
|
||||
<div id="policy-profile-main-error-msg" class="alert alert-danger hidden" role="alert">
|
||||
<i class="icon fw fw-error"></i><span></span>
|
||||
</div>
|
||||
<div class="wr-advance-operations">
|
||||
<div class='wr-advance-operations-init'>
|
||||
<br/>
|
||||
<i class='fw fw-settings fw-spin fw-2x'></i>
|
||||
Loading Platform Features . . .
|
||||
<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>
|
||||
{{/zone}}
|
||||
{{#zone "bottomJs"}}
|
||||
{{js "js/view.js"}}
|
||||
{{/zone}}
|
||||
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
function onRequest(context) {
|
||||
|
||||
var utility = require("/app/modules/utility.js")["utility"];
|
||||
var deviceType = context.uriParams.deviceType;
|
||||
var deviceId = context.uriParams.deviceId;
|
||||
|
||||
return {"deviceTypePolicyView": utility.getTenantedDeviceUnitName(deviceType, deviceId,"policy-view")};
|
||||
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"version" : "1.0.0"
|
||||
}
|
||||
@ -9,11 +9,11 @@
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.simple.policy.decision.point</artifactId>
|
||||
<artifactId>org.wso2.carbon.policy.decision.point</artifactId>
|
||||
<version>2.0.4-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 Carbon - Simple Policy Decision Point</name>
|
||||
<description>WSO2 Carbon - Simple Policy Decision Point</description>
|
||||
<name>WSO2 Carbon - Policy Decision Point</name>
|
||||
<description>WSO2 Carbon - Policy Decision Point</description>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<build>
|
||||
@ -32,9 +32,10 @@
|
||||
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
|
||||
<Bundle-Name>${project.artifactId}</Bundle-Name>
|
||||
<Bundle-Version>${carbon.device.mgt.version}</Bundle-Version>
|
||||
<Bundle-Description>Simple Policy Decision Point Bundle</Bundle-Description>
|
||||
<Private-Package>org.wso2.carbon.simple.policy.decision.point.internal</Private-Package>
|
||||
<Bundle-Description>Policy Decision Point Bundle</Bundle-Description>
|
||||
<Private-Package>org.wso2.carbon.policy.decision.point.internal</Private-Package>
|
||||
<Import-Package>
|
||||
org.wso2.carbon.context.*;
|
||||
org.osgi.framework,
|
||||
org.osgi.service.component,
|
||||
org.apache.commons.logging,
|
||||
@ -44,7 +45,7 @@
|
||||
org.wso2.carbon.device.mgt.common.*
|
||||
</Import-Package>
|
||||
<Export-Package>
|
||||
org.wso2.carbon.simple.policy.decision.point.*
|
||||
org.wso2.carbon.policy.decision.point.*
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
@ -0,0 +1,112 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.policy.decision.point.internal;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.osgi.service.component.ComponentContext;
|
||||
import org.wso2.carbon.policy.decision.point.merged.MergedEvaluationPoint;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
import org.wso2.carbon.user.core.service.RealmService;
|
||||
|
||||
/**
|
||||
* @scr.component name="org.wso2.carbon.policy.decision.MergedPolicyEvaluationServiceComponent" immediate="true"
|
||||
* @scr.reference name="user.realmservice.default"
|
||||
* interface="org.wso2.carbon.user.core.service.RealmService"
|
||||
* cardinality="1..1"
|
||||
* policy="dynamic"
|
||||
* bind="setRealmService"
|
||||
* unbind="unsetRealmService"
|
||||
* @scr.reference name="org.wso2.carbon.devicemgt.policy.manager"
|
||||
* interface="org.wso2.carbon.policy.mgt.core.PolicyManagerService"
|
||||
* cardinality="0..1"
|
||||
* policy="dynamic"
|
||||
* bind="setPolicyManagerService"
|
||||
* unbind="unsetPolicyManagerService"
|
||||
*/
|
||||
|
||||
public class MergedPolicyEvaluationServiceComponent {
|
||||
|
||||
private static Log log = LogFactory.getLog(MergedPolicyEvaluationServiceComponent.class);
|
||||
|
||||
protected void activate(ComponentContext componentContext) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Activating the policy evaluation bundle.");
|
||||
}
|
||||
|
||||
try {
|
||||
componentContext.getBundleContext().registerService(PolicyEvaluationPoint.class.getName(),
|
||||
new MergedEvaluationPoint(), null);
|
||||
} catch (Throwable t) {
|
||||
log.error("Error occurred while initializing the policy evaluation bundle");
|
||||
}
|
||||
}
|
||||
|
||||
protected void deactivate(ComponentContext componentContext) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("De-activating the policy evaluation bundle.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets Realm Service
|
||||
*
|
||||
* @param realmService An instance of RealmService
|
||||
*/
|
||||
protected void setRealmService(RealmService realmService) {
|
||||
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Setting Realm Service");
|
||||
}
|
||||
PolicyDecisionPointDataHolder.getInstance().setRealmService(realmService);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsets Realm Service
|
||||
*
|
||||
* @param realmService An instance of RealmService
|
||||
*/
|
||||
protected void unsetRealmService(RealmService realmService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Unsetting Realm Service");
|
||||
}
|
||||
PolicyDecisionPointDataHolder.getInstance().setRealmService(null);
|
||||
}
|
||||
|
||||
protected void setPolicyManagerService(PolicyManagerService policyManagerService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Unsetting PolicyManagerService Service");
|
||||
}
|
||||
PolicyDecisionPointDataHolder.getInstance().setPolicyManagerService(policyManagerService);
|
||||
}
|
||||
|
||||
protected void unsetPolicyManagerService(PolicyManagerService policyManagerService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Unsetting PolicyManagerService Service");
|
||||
}
|
||||
PolicyDecisionPointDataHolder.getInstance().setPolicyManagerService(null);
|
||||
}
|
||||
|
||||
// protected String getName() {
|
||||
// return MergedPolicyEvaluationServiceComponent.class.getName();
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.simple.policy.decision.point.internal;
|
||||
package org.wso2.carbon.policy.decision.point.internal;
|
||||
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
import org.wso2.carbon.user.core.service.RealmService;
|
||||
@ -16,14 +16,16 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.simple.policy.decision.point.internal;
|
||||
package org.wso2.carbon.policy.decision.point.internal;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.osgi.service.component.ComponentContext;
|
||||
import org.wso2.carbon.policy.decision.point.merged.MergedEvaluationPoint;
|
||||
import org.wso2.carbon.policy.decision.point.simple.PolicyEvaluationServiceImpl;
|
||||
import org.wso2.carbon.policy.decision.point.simple.SimpleEvaluationImpl;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
import org.wso2.carbon.simple.policy.decision.point.PolicyEvaluationServiceImpl;
|
||||
import org.wso2.carbon.user.core.service.RealmService;
|
||||
|
||||
/**
|
||||
@ -48,20 +50,20 @@ public class PolicyEvaluationServiceComponent {
|
||||
|
||||
protected void activate(ComponentContext componentContext) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Activating the simple policy evaluation bundle.");
|
||||
log.debug("Activating the policy evaluation bundle.");
|
||||
}
|
||||
|
||||
try {
|
||||
componentContext.getBundleContext().registerService(PolicyEvaluationPoint.class.getName(),
|
||||
new PolicyEvaluationServiceImpl(), null);
|
||||
} catch (Throwable t) {
|
||||
log.error("Error occurred while initializing the simple policy evaluation bundle");
|
||||
log.error("Error occurred while initializing the policy evaluation bundle");
|
||||
}
|
||||
}
|
||||
|
||||
protected void deactivate(ComponentContext componentContext) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("De-activating the simple policy evaluation bundle.");
|
||||
log.debug("De-activating the policy evaluation bundle.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,134 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.policy.decision.point.merged;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.policy.mgt.common.*;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
import org.wso2.carbon.policy.decision.point.internal.PolicyDecisionPointDataHolder;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* This class helps to merge related policies and return as a effective policy.
|
||||
*/
|
||||
public class MergedEvaluationPoint implements PolicyEvaluationPoint {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MergedEvaluationPoint.class);
|
||||
private PolicyManagerService policyManagerService;
|
||||
private static final String effectivePolicyName = "Effective-Policy";
|
||||
private static final String policyEvaluationPoint = "Merged";
|
||||
|
||||
@Override
|
||||
public List<ProfileFeature> getEffectiveFeatures(DeviceIdentifier deviceIdentifier)
|
||||
throws PolicyEvaluationException {
|
||||
return this.getEffectivePolicy(deviceIdentifier).getProfile().getProfileFeaturesList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return policyEvaluationPoint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws PolicyEvaluationException {
|
||||
PIPDevice pipDevice;
|
||||
List<Policy> policyList;
|
||||
Policy policy;
|
||||
try {
|
||||
policyManagerService = getPolicyManagerService();
|
||||
if (policyManagerService == null) {
|
||||
return null;
|
||||
}
|
||||
PolicyInformationPoint policyInformationPoint = policyManagerService.getPIP();
|
||||
pipDevice = policyInformationPoint.getDeviceData(deviceIdentifier);
|
||||
policyList = policyInformationPoint.getRelatedPolicies(pipDevice);
|
||||
|
||||
if (policyList.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Set effective-policy information
|
||||
Profile profile = new Profile();
|
||||
policy = policyResolve(policyList);
|
||||
profile.setProfileFeaturesList(policy.getProfile().getProfileFeaturesList());
|
||||
policy.setProfile(profile);
|
||||
Timestamp currentTimestamp = new Timestamp(Calendar.getInstance().getTime().getTime());
|
||||
profile.setCreatedDate(currentTimestamp);
|
||||
profile.setUpdatedDate(currentTimestamp);
|
||||
profile.setDeviceType(deviceIdentifier.getType());
|
||||
profile.setTenantId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
|
||||
// Set effective policy name
|
||||
policy.setPolicyName(effectivePolicyName);
|
||||
policy.setOwnershipType(pipDevice.getOwnershipType());
|
||||
// Set effective policy Active and Updated
|
||||
policy.setActive(true);
|
||||
policy.setUpdated(true);
|
||||
policy.setTenantId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
|
||||
String policyIds = "";
|
||||
Collections.sort(policyList);
|
||||
for (Policy appliedPolicy : policyList) {
|
||||
policyIds += appliedPolicy.getId() + ", ";
|
||||
}
|
||||
policyIds = policyIds.substring(0, policyIds.length() - 2);
|
||||
policy.setDescription("This is a system generated effective policy by merging Policy Id : " + policyIds);
|
||||
// Need to set compliance of the effective policy. Get compliance of first policy using priority order
|
||||
policy.setCompliance(policyList.get(0).getCompliance());
|
||||
// Change default 0 effective policy id to (-1)
|
||||
policy.setId(-1);
|
||||
return policy;
|
||||
} catch (PolicyManagementException e) {
|
||||
String msg = "Error occurred when retrieving the policy related data from policy management service.";
|
||||
log.error(msg, e);
|
||||
throw new PolicyEvaluationException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
private Policy policyResolve(List<Policy> policyList) throws PolicyEvaluationException, PolicyManagementException {
|
||||
Collections.sort(policyList, Collections.reverseOrder());
|
||||
|
||||
// Iterate through all policies
|
||||
Map<String, ProfileFeature> featureMap = new HashMap<>();
|
||||
for (Policy policy : policyList) {
|
||||
List<ProfileFeature> profileFeaturesList = policy.getProfile().getProfileFeaturesList();
|
||||
if (profileFeaturesList != null) {
|
||||
for (ProfileFeature feature : profileFeaturesList) {
|
||||
featureMap.put(feature.getFeatureCode(), feature);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get prioritized features list
|
||||
List<ProfileFeature> newFeaturesList = new ArrayList<>(featureMap.values());
|
||||
Profile profile = new Profile();
|
||||
profile.setProfileFeaturesList(newFeaturesList);
|
||||
Policy effectivePolicy = new Policy();
|
||||
effectivePolicy.setProfile(profile);
|
||||
return effectivePolicy;
|
||||
}
|
||||
|
||||
private PolicyManagerService getPolicyManagerService() {
|
||||
return PolicyDecisionPointDataHolder.getInstance().getPolicyManagerService();
|
||||
}
|
||||
|
||||
}
|
||||
@ -16,7 +16,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.simple.policy.decision.point;
|
||||
package org.wso2.carbon.policy.decision.point.simple;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
@ -29,6 +29,7 @@ import java.util.List;
|
||||
public class PolicyEvaluationServiceImpl implements PolicyEvaluationPoint {
|
||||
|
||||
private SimpleEvaluationImpl evaluation;
|
||||
private static final String policyEvaluationPoint = "Simple";
|
||||
|
||||
public PolicyEvaluationServiceImpl() {
|
||||
evaluation = new SimpleEvaluationImpl();
|
||||
@ -40,23 +41,16 @@ public class PolicyEvaluationServiceImpl implements PolicyEvaluationPoint {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProfileFeature> getEffectiveFeatures(DeviceIdentifier deviceIdentifier) throws PolicyEvaluationException {
|
||||
public List<ProfileFeature> getEffectiveFeatures(DeviceIdentifier deviceIdentifier)
|
||||
throws PolicyEvaluationException {
|
||||
|
||||
List<ProfileFeature> effectiveFeatures = evaluation.getEffectivePolicy(deviceIdentifier).
|
||||
getProfile().getProfileFeaturesList();
|
||||
|
||||
/* PolicyOperation policyOperation = new PolicyOperation();
|
||||
|
||||
List<ProfileOperation> profileOperationList = new ArrayList<ProfileOperation>();
|
||||
for (ProfileFeature feature : effectiveFeatures) {
|
||||
ProfileOperation operation = new ProfileOperation();
|
||||
|
||||
operation.setCode(feature.getFeatureCode());
|
||||
operation.setPayLoad(feature.getContent());
|
||||
profileOperationList.add(operation);
|
||||
}
|
||||
policyOperation.setProfileOperations(profileOperationList);
|
||||
policyOperation.setCode(PolicyManagementConstants.POLICY_BUNDLE);*/
|
||||
return effectiveFeatures;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return policyEvaluationPoint;
|
||||
}
|
||||
}
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
|
||||
package org.wso2.carbon.simple.policy.decision.point;
|
||||
package org.wso2.carbon.policy.decision.point.simple;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
@ -16,14 +16,14 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.simple.policy.decision.point;
|
||||
package org.wso2.carbon.policy.decision.point.simple;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.policy.decision.point.internal.PolicyDecisionPointDataHolder;
|
||||
import org.wso2.carbon.policy.mgt.common.*;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
import org.wso2.carbon.simple.policy.decision.point.internal.PolicyDecisionPointDataHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@ -32,14 +32,9 @@ import java.util.List;
|
||||
public class SimpleEvaluationImpl implements SimpleEvaluation {
|
||||
|
||||
private static final Log log = LogFactory.getLog(SimpleEvaluationImpl.class);
|
||||
//TODO : to revove the stale reference
|
||||
private PolicyManagerService policyManagerService;
|
||||
private List<Policy> policyList = new ArrayList<Policy>();
|
||||
|
||||
// public SimpleEvaluationImpl() {
|
||||
// policyManagerService = PolicyDecisionPointDataHolder.getInstance().getPolicyManagerService();
|
||||
// }
|
||||
|
||||
@Override
|
||||
public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws PolicyEvaluationException {
|
||||
Policy policy = new Policy();
|
||||
@ -74,7 +69,6 @@ public class SimpleEvaluationImpl implements SimpleEvaluation {
|
||||
return policy;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sortPolicies() throws PolicyEvaluationException {
|
||||
Collections.sort(policyList);
|
||||
@ -39,8 +39,15 @@ public interface PolicyEvaluationPoint {
|
||||
|
||||
/**
|
||||
* This class will return the effective feature set from the list.
|
||||
*
|
||||
* @param deviceIdentifier device information.
|
||||
* @return returns the effective feature set.
|
||||
*/
|
||||
List<ProfileFeature> getEffectiveFeatures(DeviceIdentifier deviceIdentifier) throws PolicyEvaluationException;
|
||||
|
||||
/**
|
||||
* This method returns the name of the Policy Evaluation Point
|
||||
* @return returns Policy Evaluation Point name
|
||||
*/
|
||||
String getName();
|
||||
}
|
||||
|
||||
@ -91,12 +91,21 @@ public class PolicyManagerServiceImpl implements PolicyManagerService {
|
||||
@Override
|
||||
public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws PolicyManagementException {
|
||||
try {
|
||||
Policy policy = PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint().
|
||||
getEffectivePolicy(deviceIdentifier);
|
||||
PolicyEvaluationPoint policyEvaluationPoint = PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint();
|
||||
Policy policy;
|
||||
|
||||
if (policyEvaluationPoint != null) {
|
||||
policy = policyEvaluationPoint.
|
||||
getEffectivePolicy(deviceIdentifier);
|
||||
if (policy == null) {
|
||||
policyAdministratorPoint.removePolicyUsed(deviceIdentifier);
|
||||
return null;
|
||||
}
|
||||
this.getPAP().setPolicyUsed(deviceIdentifier, policy);
|
||||
} else {
|
||||
throw new PolicyEvaluationException("Error occurred while getting the policy evaluation point " +
|
||||
deviceIdentifier.getId() + " - " + deviceIdentifier.getType());
|
||||
}
|
||||
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
|
||||
deviceIdentifiers.add(deviceIdentifier);
|
||||
|
||||
@ -129,8 +138,13 @@ public class PolicyManagerServiceImpl implements PolicyManagerService {
|
||||
public List<ProfileFeature> getEffectiveFeatures(DeviceIdentifier deviceIdentifier) throws
|
||||
FeatureManagementException {
|
||||
try {
|
||||
return PolicyManagementDataHolder.getInstance().
|
||||
getPolicyEvaluationPoint().getEffectiveFeatures(deviceIdentifier);
|
||||
PolicyEvaluationPoint policyEvaluationPoint = PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint();
|
||||
if (policyEvaluationPoint != null) {
|
||||
return policyEvaluationPoint.getEffectiveFeatures(deviceIdentifier);
|
||||
} else {
|
||||
throw new FeatureManagementException("Error occurred while getting the policy evaluation point " +
|
||||
deviceIdentifier.getId() + " - " + deviceIdentifier.getType());
|
||||
}
|
||||
} catch (PolicyEvaluationException e) {
|
||||
String msg = "Error occurred while getting the effective features from the PEP service " +
|
||||
deviceIdentifier.getId() + " - " + deviceIdentifier.getType();
|
||||
|
||||
@ -30,6 +30,7 @@ import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
|
||||
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
|
||||
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationMgtConstants;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyEvaluationException;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||
import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
|
||||
@ -84,7 +85,17 @@ public class PolicyEnforcementDelegatorImpl implements PolicyEnforcementDelegato
|
||||
public Policy getEffectivePolicy(DeviceIdentifier identifier) throws PolicyDelegationException {
|
||||
try {
|
||||
PolicyManagerService policyManagerService = new PolicyManagerServiceImpl();
|
||||
return policyManagerService.getPEP().getEffectivePolicy(identifier);
|
||||
PolicyAdministratorPoint policyAdministratorPoint;
|
||||
|
||||
Policy policy = policyManagerService.getPEP().getEffectivePolicy(identifier);
|
||||
policyAdministratorPoint = policyManagerService.getPAP();
|
||||
if (policy != null) {
|
||||
policyAdministratorPoint.setPolicyUsed(identifier, policy);
|
||||
} else {
|
||||
policyAdministratorPoint.removePolicyUsed(identifier);
|
||||
return null;
|
||||
}
|
||||
return policy;
|
||||
//return PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint().getEffectivePolicy(identifier);
|
||||
} catch (PolicyEvaluationException e) {
|
||||
String msg = "Error occurred while retrieving the effective policy for devices.";
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
|
||||
package org.wso2.carbon.policy.mgt.core.internal;
|
||||
|
||||
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.ntask.core.service.TaskService;
|
||||
import org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint;
|
||||
@ -36,6 +38,7 @@ public class PolicyManagementDataHolder {
|
||||
private RealmService realmService;
|
||||
private TenantManager tenantManager;
|
||||
private PolicyEvaluationPoint policyEvaluationPoint;
|
||||
private Map<String, PolicyEvaluationPoint> policyEvaluationPoints = new HashMap<>();
|
||||
private PolicyInformationPoint policyInformationPoint;
|
||||
private DeviceManagementProviderService deviceManagementService;
|
||||
private MonitoringManager monitoringManager;
|
||||
@ -88,13 +91,21 @@ public class PolicyManagementDataHolder {
|
||||
}
|
||||
|
||||
public PolicyEvaluationPoint getPolicyEvaluationPoint() {
|
||||
return policyEvaluationPoint;
|
||||
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().
|
||||
getDeviceManagementConfig().getPolicyConfiguration();
|
||||
String policyEvaluationPointName = policyConfiguration.getPolicyEvaluationPointName();
|
||||
return policyEvaluationPoints.get(policyEvaluationPointName);
|
||||
}
|
||||
|
||||
public void setPolicyEvaluationPoint(PolicyEvaluationPoint policyEvaluationPoint) {
|
||||
this.policyEvaluationPoint = policyEvaluationPoint;
|
||||
public void setPolicyEvaluationPoint(String name, PolicyEvaluationPoint policyEvaluationPoint) {
|
||||
policyEvaluationPoints.put(name,policyEvaluationPoint);
|
||||
}
|
||||
|
||||
public void removePolicyEvaluationPoint(PolicyEvaluationPoint policyEvaluationPoint) {
|
||||
policyEvaluationPoints.remove(policyEvaluationPoint.getName());
|
||||
}
|
||||
|
||||
|
||||
public PolicyInformationPoint getPolicyInformationPoint() {
|
||||
return policyInformationPoint;
|
||||
}
|
||||
|
||||
@ -46,9 +46,9 @@ import org.wso2.carbon.user.core.service.RealmService;
|
||||
* policy="dynamic"
|
||||
* bind="setRealmService"
|
||||
* unbind="unsetRealmService"
|
||||
* @scr.reference name="org.wso2.carbon.devicemgt.simple.policy.evaluation.manager"
|
||||
* @scr.reference name="org.wso2.carbon.devicemgt.policy.evaluation.manager"
|
||||
* interface="org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint"
|
||||
* cardinality="1..1"
|
||||
* cardinality="1..n"
|
||||
* policy="dynamic"
|
||||
* bind="setPEPService"
|
||||
* unbind="unsetPEPService"
|
||||
@ -159,14 +159,14 @@ public class PolicyManagementServiceComponent {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Setting Policy Information Service");
|
||||
}
|
||||
PolicyManagementDataHolder.getInstance().setPolicyEvaluationPoint(pepService);
|
||||
PolicyManagementDataHolder.getInstance().setPolicyEvaluationPoint(pepService.getName(), pepService);
|
||||
}
|
||||
|
||||
protected void unsetPEPService(PolicyEvaluationPoint pepService) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Removing Policy Information Service");
|
||||
}
|
||||
PolicyManagementDataHolder.getInstance().setPolicyEvaluationPoint(null);
|
||||
PolicyManagementDataHolder.getInstance().removePolicyEvaluationPoint(pepService);
|
||||
}
|
||||
|
||||
protected void setDeviceManagementService(DeviceManagementProviderService deviceManagerService) {
|
||||
|
||||
@ -880,9 +880,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
||||
|
||||
Policy policySaved = policyDAO.getAppliedPolicy(deviceId, device.getEnrolmentInfo().getId());
|
||||
if (policySaved != null && policySaved.getId() != 0) {
|
||||
// if (policy.getId() != policySaved.getId()) {
|
||||
policyDAO.updateEffectivePolicyToDevice(deviceId, device.getEnrolmentInfo().getId(), policy);
|
||||
// }
|
||||
} else {
|
||||
policyDAO.addEffectivePolicyToDevice(deviceId, device.getEnrolmentInfo().getId(), policy);
|
||||
}
|
||||
|
||||
@ -27,14 +27,10 @@ import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
|
||||
import org.wso2.carbon.device.mgt.core.authorization.DeviceAccessAuthorizationServiceImpl;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
|
||||
import org.wso2.carbon.ntask.common.TaskException;
|
||||
import org.wso2.carbon.policy.mgt.common.*;
|
||||
import org.wso2.carbon.policy.mgt.core.enforcement.DelegationTask;
|
||||
import org.wso2.carbon.policy.mgt.core.internal.PolicyManagementDataHolder;
|
||||
import org.wso2.carbon.policy.mgt.core.services.SimplePolicyEvaluationTest;
|
||||
|
||||
@ -51,7 +47,7 @@ public class PolicyEvaluationTestCase extends BasePolicyManagementDAOTest {
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
PolicyEvaluationPoint evaluationPoint = new SimplePolicyEvaluationTest();
|
||||
PolicyManagementDataHolder.getInstance().setPolicyEvaluationPoint(evaluationPoint);
|
||||
PolicyManagementDataHolder.getInstance().setPolicyEvaluationPoint(evaluationPoint.getName(), evaluationPoint);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -93,7 +89,7 @@ public class PolicyEvaluationTestCase extends BasePolicyManagementDAOTest {
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = ("activatePolicies"))
|
||||
public void getEffectivePolicy() throws DeviceManagementException, PolicyEvaluationException {
|
||||
public void getEffectivePolicy(DeviceIdentifier identifier) throws DeviceManagementException, PolicyEvaluationException {
|
||||
|
||||
log.debug("Getting effective policy for device started ..........");
|
||||
|
||||
@ -103,7 +99,6 @@ public class PolicyEvaluationTestCase extends BasePolicyManagementDAOTest {
|
||||
PolicyEvaluationPoint evaluationPoint = PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint();
|
||||
|
||||
for (Device device : devices) {
|
||||
DeviceIdentifier identifier = new DeviceIdentifier();
|
||||
identifier.setType(device.getType());
|
||||
identifier.setId(device.getDeviceIdentifier());
|
||||
Policy policy = evaluationPoint.getEffectivePolicy(identifier);
|
||||
|
||||
@ -29,7 +29,8 @@ import org.wso2.carbon.policy.mgt.core.PolicyManagerServiceImpl;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SimplePolicyEvaluationTest implements PolicyEvaluationPoint {
|
||||
public class
|
||||
SimplePolicyEvaluationTest implements PolicyEvaluationPoint {
|
||||
|
||||
private static final Log log = LogFactory.getLog(SimplePolicyEvaluationTest.class);
|
||||
|
||||
@ -76,6 +77,11 @@ public class SimplePolicyEvaluationTest implements PolicyEvaluationPoint {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "SimplePolicy";
|
||||
}
|
||||
|
||||
public void sortPolicies(List<Policy> policyList) throws PolicyEvaluationException {
|
||||
Collections.sort(policyList);
|
||||
}
|
||||
|
||||
@ -42,6 +42,8 @@
|
||||
<maxRetries>5</maxRetries>
|
||||
<minRetriesToMarkUnreachable>8</minRetriesToMarkUnreachable>
|
||||
<minRetriesToMarkInactive>20</minRetriesToMarkInactive>
|
||||
<!--<PolicyEvaluationPoint>Simple</PolicyEvaluationPoint>-->
|
||||
<PolicyEvaluationPoint>Simple</PolicyEvaluationPoint>
|
||||
</PolicyConfiguration>
|
||||
</ManagementRepository>
|
||||
</DeviceMgtConfiguration>
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
<module>org.wso2.carbon.policy.mgt.common</module>
|
||||
<module>org.wso2.carbon.policy.mgt.core</module>
|
||||
<module>org.wso2.carbon.policy.information.point</module>
|
||||
<module>org.wso2.carbon.simple.policy.decision.point</module>
|
||||
<module>org.wso2.carbon.policy.decision.point</module>
|
||||
<module>org.wso2.carbon.complex.policy.decision.point</module>
|
||||
</modules>
|
||||
|
||||
|
||||
Binary file not shown.
@ -43,6 +43,10 @@
|
||||
<MaxRetries>5</MaxRetries>
|
||||
<MinRetriesToMarkUnreachable>8</MinRetriesToMarkUnreachable>
|
||||
<MinRetriesToMarkInactive>20</MinRetriesToMarkInactive>
|
||||
<!--Set the policy evaluation point name-->
|
||||
<!--Simple -> Simple policy evaluation point-->
|
||||
<!--Merged -> Merged policy evaluation point -->
|
||||
<PolicyEvaluationPoint>Simple</PolicyEvaluationPoint>
|
||||
<Platforms>
|
||||
<Platform>android</Platform>
|
||||
<Platform>ios</Platform>
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.simple.policy.decision.point</artifactId>
|
||||
<artifactId>org.wso2.carbon.policy.decision.point</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
@ -118,7 +118,7 @@
|
||||
org.wso2.carbon.devicemgt:org.wso2.carbon.policy.mgt.common:${carbon.device.mgt.version}
|
||||
</bundleDef>
|
||||
<bundleDef>
|
||||
org.wso2.carbon.devicemgt:org.wso2.carbon.simple.policy.decision.point:${carbon.device.mgt.version}
|
||||
org.wso2.carbon.devicemgt:org.wso2.carbon.policy.decision.point:${carbon.device.mgt.version}
|
||||
</bundleDef>
|
||||
<bundleDef>
|
||||
org.wso2.carbon.devicemgt:org.wso2.carbon.policy.information.point:${carbon.device.mgt.version}
|
||||
|
||||
4
pom.xml
4
pom.xml
@ -195,7 +195,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
<artifactId>org.wso2.carbon.simple.policy.decision.point</artifactId>
|
||||
<artifactId>org.wso2.carbon.policy.decision.point</artifactId>
|
||||
<version>${carbon.device.mgt.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -1910,7 +1910,7 @@
|
||||
|
||||
<!-- Carbon Identity -->
|
||||
<carbon.identity.framework.version>5.6.89</carbon.identity.framework.version>
|
||||
<identity.inbound.auth.oauth.version>5.2.7</identity.inbound.auth.oauth.version>
|
||||
<identity.inbound.auth.oauth.version>5.2.33</identity.inbound.auth.oauth.version>
|
||||
<identity.inbound.auth.saml.version>5.2.14</identity.inbound.auth.saml.version>
|
||||
|
||||
<!-- Carbon Identity import version ranges -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user