Skip to content

Commit 45617db

Browse files
author
alexrobin
committed
Creates proper permissions for dynamically inserted offerings
1 parent 677e88f commit 45617db

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

sensorhub-service-swe/src/main/java/org/sensorhub/impl/service/sos/SOSSecurity.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,7 @@ public SOSSecurity(SOSService sos, boolean enable)
7474

7575
// create permissions for each offering
7676
for (SOSProviderConfig offering: sos.getConfiguration().dataProviders)
77-
{
78-
String permName = getOfferingPermissionName(offering.uri);
79-
new ItemPermission(sos_read_caps, permName);
80-
new ItemPermission(sos_read_sensor, permName);
81-
new ItemPermission(sos_read_obs, permName);
82-
new ItemPermission(sos_insert_obs, permName);
83-
new ItemPermission(sos_update_obs, permName);
84-
new ItemPermission(sos_delete_obs, permName);
85-
new ItemPermission(sos_update_sensor, permName);
86-
new ItemPermission(sos_delete_sensor, permName);
87-
}
77+
addOfferingPermissions(offering.uri);
8878

8979
// register this instance permission tree
9080
SensorHub.getInstance().getSecurityManager().registerModulePermissions(rootPerm);
@@ -102,4 +92,18 @@ protected String getOfferingPermissionName(String offeringUri)
10292
{
10393
return "offering[" + offeringUri + "]";
10494
}
95+
96+
97+
protected void addOfferingPermissions(String offeringUri)
98+
{
99+
String permName = getOfferingPermissionName(offeringUri);
100+
new ItemPermission(sos_read_caps, permName);
101+
new ItemPermission(sos_read_sensor, permName);
102+
new ItemPermission(sos_read_obs, permName);
103+
new ItemPermission(sos_insert_obs, permName);
104+
new ItemPermission(sos_update_obs, permName);
105+
new ItemPermission(sos_delete_obs, permName);
106+
new ItemPermission(sos_update_sensor, permName);
107+
new ItemPermission(sos_delete_sensor, permName);
108+
}
105109
}

sensorhub-service-swe/src/main/java/org/sensorhub/impl/service/sos/SOSServlet.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,9 @@ protected void handleRequest(InsertSensorRequest request) throws Exception
11781178
ISOSDataConsumer consumer = consumerConfig.getConsumerInstance();
11791179
dataConsumers.put(offeringID, consumer);
11801180

1181+
// add new permissions for this offering
1182+
securityHandler.addOfferingPermissions(offeringID);
1183+
11811184
// create offering only if not already done when registering
11821185
// the provider factory listener (if data source was in STARTED
11831186
// state it can automatically trigger a call to showProviderCaps).

0 commit comments

Comments
 (0)