* Class Constants
*/
private int objectId = 0; // Default value is 0
-
+ // This is permission system for callback objects
+ private static Integer[] object0Permission = { 0, 1 }; // object0 is the callback object
+ private List<Integer> set0Allowed;
/**
* Properties and constants for Callbacks!
ports = _ports;
rmiCall = new IoTRMICall(_port, _address, _rev);
+ set0Allowed = Arrays.asList(object0Permission);
+
// Only for callbacks!!!
listCBObj = new ArrayList<CallBackInterface>();
___initCallBack();
Object retObj = null;
while (true) {
byte[] method = rmiObj.getMethodBytes();
+ // Permission checking
+ int methId = IoTRMIObject.getMethodId(method);
+ if (!set0Allowed.contains(methId))
+ throw new Error("CallBack_CBSkeleton: This object is not allowed to access method " + methId);
+
int objId = IoTRMIObject.getObjectId(method);
CallBack_CBSkeleton skel = (CallBack_CBSkeleton) listCBObj.get(objId);
if (skel != null) {