From: rtrimana Date: Fri, 1 Dec 2017 22:26:24 +0000 (-0800) Subject: Adding a new feature that makes process jailing rules more fine-grained - we can... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iot2.git;a=commitdiff_plain;h=aaa765a192fdcd2aaa05fb6b276424652578d0e8 Adding a new feature that makes process jailing rules more fine-grained - we can now define additional rules that's specific to drivers/controllers, e.g. a specific file/directory that the driver/controller needs to access. --- diff --git a/benchmarks/Java/HomeSecurityController/HomeSecurityController.config b/benchmarks/Java/HomeSecurityController/HomeSecurityController.config index a3a2f98..b4fe092 100644 --- a/benchmarks/Java/HomeSecurityController/HomeSecurityController.config +++ b/benchmarks/Java/HomeSecurityController/HomeSecurityController.config @@ -2,3 +2,6 @@ ADDITIONAL_ZIP_FILE=No # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/Java/HomeSecurityController/Makefile b/benchmarks/Java/HomeSecurityController/Makefile index 7e9a569..9d3aee2 100644 --- a/benchmarks/Java/HomeSecurityController/Makefile +++ b/benchmarks/Java/HomeSecurityController/Makefile @@ -22,12 +22,14 @@ PHONY += homesecurity homesecurity: $(JAVAC) $(JFLAGS) *.java cp HomeSecurityController.config $(BIN_DIR)/HomeSecurityController + cp HomeSecurityController.tomoyo $(BIN_DIR)/HomeSecurityController cd $(BIN_DIR)/HomeSecurityController; $(JAR) $(JARFLAGS) HomeSecurityController.jar ../HomeSecurityController/HomeSecurityController*.class ../HomeSecurityController/*.class ../iotcode/interfaces/SmartthingsSensor*.class ../iotcode/interfaces/SmartthingsActuator*.class ../iotcode/interfaces/Camera*.class ../iotcode/interfaces/Alarm*.class ../iotcode/interfaces/Room*.class ../iotcode/interfaces/ZoneState*.class ../iotcode/interfaces/Resolution*.class PHONY += check-homesecurity check-homesecurity: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java cp HomeSecurityController.config $(BIN_DIR)/HomeSecurityController + cp HomeSecurityController.tomoyo $(BIN_DIR)/HomeSecurityController cd $(BIN_DIR)/HomeSecurityController; $(JAR) $(JARFLAGS) HomeSecurityController.jar ../HomeSecurityController/HomeSecurityController*.class ../HomeSecurityController/*.class ../iotcode/interfaces/SmartthingsSensor*.class ../iotcode/interfaces/SmartthingsActuator*.class ../iotcode/interfaces/Camera*.class ../iotcode/interfaces/Alarm*.class ../iotcode/interfaces/Room*.class ../iotcode/interfaces/ZoneState*.class ../iotcode/interfaces/Resolution*.class .PHONY: $(PHONY) diff --git a/benchmarks/Java/IrrigationController/IrrigationController.config b/benchmarks/Java/IrrigationController/IrrigationController.config index 7f70cd7..7a56af0 100644 --- a/benchmarks/Java/IrrigationController/IrrigationController.config +++ b/benchmarks/Java/IrrigationController/IrrigationController.config @@ -2,3 +2,6 @@ ADDITIONAL_ZIP_FILE=Yes # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=Yes diff --git a/benchmarks/Java/IrrigationController/IrrigationController.tomoyo b/benchmarks/Java/IrrigationController/IrrigationController.tomoyo new file mode 100644 index 0000000..637ecf7 --- /dev/null +++ b/benchmarks/Java/IrrigationController/IrrigationController.tomoyo @@ -0,0 +1,3 @@ +file read /home/iotuser/iot2/iotjava/iotruntime/resources/\*.csv +file read /home/iotuser/iot2/iotjava/iotruntime/help_files/\* + diff --git a/benchmarks/Java/IrrigationController/Makefile b/benchmarks/Java/IrrigationController/Makefile index e8d863b..fa69d0d 100644 --- a/benchmarks/Java/IrrigationController/Makefile +++ b/benchmarks/Java/IrrigationController/Makefile @@ -23,6 +23,7 @@ irrigation: $(JAVAC) $(JFLAGS) *.java cd $(BIN_DIR)/IrrigationController; $(JAR) $(JARFLAGS) IrrigationController.jar ../IrrigationController/*.class ../iotcode/interfaces/*.class cp IrrigationController.config $(BIN_DIR)/IrrigationController + cp IrrigationController.tomoyo $(BIN_DIR)/IrrigationController cp -rf ./resources ./help_files $(BIN_DIR)/IrrigationController cd $(BIN_DIR)/IrrigationController; zip -r IrrigationController.zip ./resources ./help_files @@ -31,6 +32,7 @@ check-irrigation: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java cd $(BIN_DIR)/IrrigationController; $(JAR) $(JARFLAGS) IrrigationController.jar ../IrrigationController/*.class ../iotcode/interfaces/*.class cp IrrigationController.config $(BIN_DIR)/IrrigationController + cp IrrigationController.tomoyo $(BIN_DIR)/IrrigationController cp -rf ./resources ./help_files $(BIN_DIR)/IrrigationController cd $(BIN_DIR)/IrrigationController; zip -r IrrigationController.zip ./resources ./help_files diff --git a/benchmarks/Java/Lifxtest/Lifxtest.config b/benchmarks/Java/Lifxtest/Lifxtest.config index c7823d5..d1320f7 100644 --- a/benchmarks/Java/Lifxtest/Lifxtest.config +++ b/benchmarks/Java/Lifxtest/Lifxtest.config @@ -8,3 +8,6 @@ FIELD_TYPE_0=IoTSet # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/Java/SmartLightsController/Makefile b/benchmarks/Java/SmartLightsController/Makefile index 25baf35..e4dd350 100644 --- a/benchmarks/Java/SmartLightsController/Makefile +++ b/benchmarks/Java/SmartLightsController/Makefile @@ -22,12 +22,14 @@ PHONY += smartlights smartlights: $(JAVAC) $(JFLAGS) *.java cp SmartLightsController.config $(BIN_DIR)/SmartLightsController + cp SmartLightsController.tomoyo $(BIN_DIR)/SmartLightsController cd $(BIN_DIR)/SmartLightsController; $(JAR) $(JARFLAGS) SmartLightsController.jar ../SmartLightsController/SmartLightsController*.class ../SmartLightsController/ColorTemperature*.class ../SmartLightsController/MotionDetection*.class ../SmartLightsController/*.class ../iotcode/interfaces/Camera*.class ../iotcode/interfaces/Room*.class ../iotcode/interfaces/LightBulb*.class ../iotcode/interfaces/Resolution*.class PHONY += check-smartlights check-smartlights: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java cp SmartLightsController.config $(BIN_DIR)/SmartLightsController + cp SmartLightsController.tomoyo $(BIN_DIR)/SmartLightsController cd $(BIN_DIR)/SmartLightsController; $(JAR) $(JARFLAGS) SmartLightsController.jar ../SmartLightsController/SmartLightsController*.class ../SmartLightsController/ColorTemperature*.class ../SmartLightsController/MotionDetection*.class ../SmartLightsController/*.class ../iotcode/interfaces/Camera*.class ../iotcode/interfaces/Room*.class ../iotcode/interfaces/LightBulb*.class ../iotcode/interfaces/Resolution*.class .PHONY: $(PHONY) diff --git a/benchmarks/Java/SmartLightsController/SmartLightsController.config b/benchmarks/Java/SmartLightsController/SmartLightsController.config index a3a2f98..28a4f80 100644 --- a/benchmarks/Java/SmartLightsController/SmartLightsController.config +++ b/benchmarks/Java/SmartLightsController/SmartLightsController.config @@ -2,3 +2,6 @@ ADDITIONAL_ZIP_FILE=No # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=Yes diff --git a/benchmarks/Java/SmartLightsController/SmartLightsController.tomoyo b/benchmarks/Java/SmartLightsController/SmartLightsController.tomoyo new file mode 100644 index 0000000..974b883 --- /dev/null +++ b/benchmarks/Java/SmartLightsController/SmartLightsController.tomoyo @@ -0,0 +1,3 @@ +file create /tmp/imageio\*.tmp 0600 +file read/write/unlink /tmp/imageio\*.tmp + diff --git a/benchmarks/Java/SpeakerController/Makefile b/benchmarks/Java/SpeakerController/Makefile index 90dc1a7..8903728 100644 --- a/benchmarks/Java/SpeakerController/Makefile +++ b/benchmarks/Java/SpeakerController/Makefile @@ -25,6 +25,7 @@ speaker: $(JAVAC) $(JFLAGS) *.java cd $(BIN_DIR)/SpeakerController; $(JAR) $(JARFLAGS) SpeakerController.jar ../SpeakerController/*.class ../iotcode/interfaces/*.class cp SpeakerController.config $(BIN_DIR)/SpeakerController + cp SpeakerController.tomoyo $(BIN_DIR)/SpeakerController zip -r SpeakerController.zip ./music mv SpeakerController.zip $(BIN_DIR)/SpeakerController @@ -33,6 +34,7 @@ check-speaker: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java cd $(BIN_DIR)/SpeakerController; $(JAR) $(JARFLAGS) SpeakerController.jar ../SpeakerController/*.class ../iotcode/interfaces/*.class cp SpeakerController.config $(BIN_DIR)/SpeakerController + cp SpeakerController.tomoyo $(BIN_DIR)/SpeakerController zip -r SpeakerController.zip ./music mv SpeakerController.zip $(BIN_DIR)/SpeakerController diff --git a/benchmarks/Java/SpeakerController/SpeakerController.config b/benchmarks/Java/SpeakerController/SpeakerController.config index 7f70cd7..7a56af0 100644 --- a/benchmarks/Java/SpeakerController/SpeakerController.config +++ b/benchmarks/Java/SpeakerController/SpeakerController.config @@ -2,3 +2,6 @@ ADDITIONAL_ZIP_FILE=Yes # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=Yes diff --git a/benchmarks/Java/SpeakerController/SpeakerController.tomoyo b/benchmarks/Java/SpeakerController/SpeakerController.tomoyo new file mode 100644 index 0000000..22d7dd8 --- /dev/null +++ b/benchmarks/Java/SpeakerController/SpeakerController.tomoyo @@ -0,0 +1 @@ +file read /home/iotuser/iot2/iotjava/iotruntime/music/\*.mp3 diff --git a/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.config b/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.config index 57f01dd..c4f8905 100644 --- a/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.config +++ b/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=CameraSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=Yes diff --git a/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.tomoyo b/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.tomoyo new file mode 100644 index 0000000..7d1b011 --- /dev/null +++ b/benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.tomoyo @@ -0,0 +1,2 @@ +file create /tmp/imageio\*.tmp 0600 +file read/write/unlink /tmp/imageio\*.tmp diff --git a/benchmarks/drivers/Java/AudioRoom/AudioRoom.config b/benchmarks/drivers/Java/AudioRoom/AudioRoom.config index 30be632..ec9c5d4 100644 --- a/benchmarks/drivers/Java/AudioRoom/AudioRoom.config +++ b/benchmarks/drivers/Java/AudioRoom/AudioRoom.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=RoomSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/BlossomSprinkler/BlossomSprinkler.config b/benchmarks/drivers/Java/BlossomSprinkler/BlossomSprinkler.config index 1fe5d04..e6d46ef 100644 --- a/benchmarks/drivers/Java/BlossomSprinkler/BlossomSprinkler.config +++ b/benchmarks/drivers/Java/BlossomSprinkler/BlossomSprinkler.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SprinklerSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/DlinkAlarm/DlinkAlarm.config b/benchmarks/drivers/Java/DlinkAlarm/DlinkAlarm.config index a4f10a8..b6460ee 100644 --- a/benchmarks/drivers/Java/DlinkAlarm/DlinkAlarm.config +++ b/benchmarks/drivers/Java/DlinkAlarm/DlinkAlarm.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=AlarmSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/DoorlockActuator/DoorlockActuator.config b/benchmarks/drivers/Java/DoorlockActuator/DoorlockActuator.config index 6925867..1faad3f 100644 --- a/benchmarks/drivers/Java/DoorlockActuator/DoorlockActuator.config +++ b/benchmarks/drivers/Java/DoorlockActuator/DoorlockActuator.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SmartthingsActuatorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/DoorlockSensor/DoorlockSensor.config b/benchmarks/drivers/Java/DoorlockSensor/DoorlockSensor.config index 73b43f1..5056c9b 100644 --- a/benchmarks/drivers/Java/DoorlockSensor/DoorlockSensor.config +++ b/benchmarks/drivers/Java/DoorlockSensor/DoorlockSensor.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SmartthingsSensorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/EspAlarm/EspAlarm.config b/benchmarks/drivers/Java/EspAlarm/EspAlarm.config index a4f10a8..b6460ee 100644 --- a/benchmarks/drivers/Java/EspAlarm/EspAlarm.config +++ b/benchmarks/drivers/Java/EspAlarm/EspAlarm.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=AlarmSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/EspSprinkler/EspSprinkler.config b/benchmarks/drivers/Java/EspSprinkler/EspSprinkler.config index 1fe5d04..e6d46ef 100644 --- a/benchmarks/drivers/Java/EspSprinkler/EspSprinkler.config +++ b/benchmarks/drivers/Java/EspSprinkler/EspSprinkler.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SprinklerSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/GPSPhoneGateway/GPSPhoneGateway.config b/benchmarks/drivers/Java/GPSPhoneGateway/GPSPhoneGateway.config index db347f6..33f397d 100644 --- a/benchmarks/drivers/Java/GPSPhoneGateway/GPSPhoneGateway.config +++ b/benchmarks/drivers/Java/GPSPhoneGateway/GPSPhoneGateway.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=GPSGatewaySmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/GreenLawn/GreenLawn.config b/benchmarks/drivers/Java/GreenLawn/GreenLawn.config index 1f025f1..c6f0120 100644 --- a/benchmarks/drivers/Java/GreenLawn/GreenLawn.config +++ b/benchmarks/drivers/Java/GreenLawn/GreenLawn.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=LawnSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/HomeRoom/HomeRoom.config b/benchmarks/drivers/Java/HomeRoom/HomeRoom.config index 30be632..ec9c5d4 100644 --- a/benchmarks/drivers/Java/HomeRoom/HomeRoom.config +++ b/benchmarks/drivers/Java/HomeRoom/HomeRoom.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=RoomSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/IHome/IHome.config b/benchmarks/drivers/Java/IHome/IHome.config index 5d7772c..34c5400 100644 --- a/benchmarks/drivers/Java/IHome/IHome.config +++ b/benchmarks/drivers/Java/IHome/IHome.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SpeakerSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/LabRoom/LabRoom.config b/benchmarks/drivers/Java/LabRoom/LabRoom.config index 30be632..ec9c5d4 100644 --- a/benchmarks/drivers/Java/LabRoom/LabRoom.config +++ b/benchmarks/drivers/Java/LabRoom/LabRoom.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=RoomSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/LifxLightBulb/LifxLightBulb.config b/benchmarks/drivers/Java/LifxLightBulb/LifxLightBulb.config index e178dd8..cf40798 100644 --- a/benchmarks/drivers/Java/LifxLightBulb/LifxLightBulb.config +++ b/benchmarks/drivers/Java/LifxLightBulb/LifxLightBulb.config @@ -9,3 +9,6 @@ LANGUAGE=Java # Language (fine-grained flags) #LANGUAGE_LifxLightBulbLB1=Java #LANGUAGE_LifxLightBulbLB2=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/Makefile b/benchmarks/drivers/Java/Makefile index 3d45da4..b144b73 100644 --- a/benchmarks/drivers/Java/Makefile +++ b/benchmarks/drivers/Java/Makefile @@ -25,42 +25,49 @@ PHONY += light light: $(JAVAC) $(JFLAGS) LifxLightBulb/*.java cp LifxLightBulb/LifxLightBulb.config $(BIN_DIR)/iotcode/LifxLightBulb + cp LifxLightBulb/LifxLightBulb.tomoyo $(BIN_DIR)/iotcode/LifxLightBulb cd $(BIN_DIR)/iotcode/LifxLightBulb; $(JAR) $(JARFLAGS) LifxLightBulb.jar ../../iotcode/LifxLightBulb/*.class ../../iotcode/interfaces/LightBulb*.class PHONY += camera camera: $(JAVAC) $(JFLAGS) AmcrestCamera/*.java cp AmcrestCamera/AmcrestCamera.config $(BIN_DIR)/iotcode/AmcrestCamera + cp AmcrestCamera/AmcrestCamera.tomoyo $(BIN_DIR)/iotcode/AmcrestCamera cd $(BIN_DIR)/iotcode/AmcrestCamera; $(JAR) $(JARFLAGS) AmcrestCamera.jar ../../iotcode/AmcrestCamera/*.class ../../iotcode/interfaces/Camera*.class ../../iotcode/interfaces/Resolution*.class PHONY += labroom labroom: $(JAVAC) $(JFLAGS) LabRoom/*.java cp LabRoom/LabRoom.config $(BIN_DIR)/iotcode/LabRoom + cp LabRoom/LabRoom.tomoyo $(BIN_DIR)/iotcode/LabRoom cd $(BIN_DIR)/iotcode/LabRoom; $(JAR) $(JARFLAGS) LabRoom.jar ../../iotcode/LabRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += greenlawn greenlawn: $(JAVAC) $(JFLAGS) GreenLawn/*.java cp GreenLawn/GreenLawn.config $(BIN_DIR)/iotcode/GreenLawn + cp GreenLawn/GreenLawn.tomoyo $(BIN_DIR)/iotcode/GreenLawn cd $(BIN_DIR)/iotcode/GreenLawn; $(JAR) $(JARFLAGS) GreenLawn.jar ../../iotcode/GreenLawn/*.class ../../iotcode/interfaces/Lawn*.class PHONY += sprinkler sprinkler: $(JAVAC) $(JFLAGS) EspSprinkler/*.java cp EspSprinkler/EspSprinkler.config $(BIN_DIR)/iotcode/EspSprinkler + cp EspSprinkler/EspSprinkler.tomoyo $(BIN_DIR)/iotcode/EspSprinkler cd $(BIN_DIR)/iotcode/EspSprinkler; $(JAR) $(JARFLAGS) EspSprinkler.jar ../../iotcode/EspSprinkler/*.class ../../iotcode/interfaces/Sprinkler*.class ../../iotcode/interfaces/ZoneState*.class PHONY += blossomsprinkler blossomsprinkler: $(JAVAC) $(JFLAGS) BlossomSprinkler/*.java cp BlossomSprinkler/BlossomSprinkler.config $(BIN_DIR)/iotcode/BlossomSprinkler + cp BlossomSprinkler/BlossomSprinkler.tomoyo $(BIN_DIR)/iotcode/BlossomSprinkler cd $(BIN_DIR)/iotcode/BlossomSprinkler; $(JAR) $(JARFLAGS) BlossomSprinkler.jar ../../iotcode/BlossomSprinkler/*.class ../../iotcode/interfaces/Sprinkler*.class ../../iotcode/interfaces/ZoneState*.class PHONY += moisture moisture: $(JAVAC) $(JFLAGS) SpruceSensor/*.java cp SpruceSensor/SpruceSensor.config $(BIN_DIR)/iotcode/SpruceSensor + cp SpruceSensor/SpruceSensor.tomoyo $(BIN_DIR)/iotcode/SpruceSensor #cd $(BIN_DIR)/iotcode/SpruceSensor; $(JAR) $(JARFLAGS) SpruceSensor.jar ../../iotcode/SpruceSensor/*.class ../../iotcode/interfaces/MoistureSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class cd $(BIN_DIR)/iotcode/SpruceSensor; $(JAR) $(JARFLAGS) SpruceSensor.jar ../../iotcode/SpruceSensor/*.class ../../iotcode/interfaces/MoistureSensor*.class ../../iotcode/interfaces/Camera*.class @@ -68,48 +75,56 @@ PHONY += weathergateway weathergateway: $(JAVAC) $(JFLAGS) WeatherPhoneGateway/*.java cp WeatherPhoneGateway/WeatherPhoneGateway.config $(BIN_DIR)/iotcode/WeatherPhoneGateway + cp WeatherPhoneGateway/WeatherPhoneGateway.tomoyo $(BIN_DIR)/iotcode/WeatherPhoneGateway cd $(BIN_DIR)/iotcode/WeatherPhoneGateway; $(JAR) $(JARFLAGS) WeatherPhoneGateway.jar ../../iotcode/WeatherPhoneGateway/*.class ../../iotcode/interfaces/WeatherGateway*.class PHONY += audioroom audioroom: $(JAVAC) $(JFLAGS) AudioRoom/*.java cp AudioRoom/AudioRoom.config $(BIN_DIR)/iotcode/AudioRoom + cp AudioRoom/AudioRoom.tomoyo $(BIN_DIR)/iotcode/AudioRoom cd $(BIN_DIR)/iotcode/AudioRoom; $(JAR) $(JARFLAGS) AudioRoom.jar ../../iotcode/AudioRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += gpsgateway gpsgateway: $(JAVAC) $(JFLAGS) GPSPhoneGateway/*.java cp GPSPhoneGateway/GPSPhoneGateway.config $(BIN_DIR)/iotcode/GPSPhoneGateway + cp GPSPhoneGateway/GPSPhoneGateway.tomoyo $(BIN_DIR)/iotcode/GPSPhoneGateway cd $(BIN_DIR)/iotcode/GPSPhoneGateway; $(JAR) $(JARFLAGS) GPSPhoneGateway.jar ../../iotcode/GPSPhoneGateway/*.class ../../iotcode/interfaces/GPSGateway*.class PHONY += ihome ihome: $(JAVAC) $(JFLAGS) IHome/*.java cp IHome/IHome.config $(BIN_DIR)/iotcode/IHome + cp IHome/IHome.tomoyo $(BIN_DIR)/iotcode/IHome cd $(BIN_DIR)/iotcode/IHome; $(JAR) $(JARFLAGS) IHome.jar ../../iotcode/IHome/*.class ../../iotcode/interfaces/Speaker*.class PHONY += homeroom homeroom: $(JAVAC) $(JFLAGS) HomeRoom/*.java cp HomeRoom/HomeRoom.config $(BIN_DIR)/iotcode/HomeRoom + cp HomeRoom/HomeRoom.tomoyo $(BIN_DIR)/iotcode/HomeRoom cd $(BIN_DIR)/iotcode/HomeRoom; $(JAR) $(JARFLAGS) HomeRoom.jar ../../iotcode/HomeRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += alarm alarm: $(JAVAC) $(JFLAGS) EspAlarm/*.java cp EspAlarm/EspAlarm.config $(BIN_DIR)/iotcode/EspAlarm + cp EspAlarm/EspAlarm.tomoyo $(BIN_DIR)/iotcode/EspAlarm cd $(BIN_DIR)/iotcode/EspAlarm; $(JAR) $(JARFLAGS) EspAlarm.jar ../../iotcode/EspAlarm/*.class ../../iotcode/interfaces/Alarm*.class ../../iotcode/interfaces/ZoneState*.class PHONY += dlink-alarm dlink-alarm: $(JAVAC) $(JFLAGS) DlinkAlarm/*.java cp DlinkAlarm/DlinkAlarm.config $(BIN_DIR)/iotcode/DlinkAlarm + cp DlinkAlarm/DlinkAlarm.tomoyo $(BIN_DIR)/iotcode/DlinkAlarm cd $(BIN_DIR)/iotcode/DlinkAlarm; $(JAR) $(JARFLAGS) DlinkAlarm.jar ../../iotcode/DlinkAlarm/*.class ../../iotcode/interfaces/Alarm*.class ../../iotcode/interfaces/ZoneState*.class PHONY += motion motion: $(JAVAC) $(JFLAGS) MotionSensor/*.java cp MotionSensor/MotionSensor.config $(BIN_DIR)/iotcode/MotionSensor + cp MotionSensor/MotionSensor.tomoyo $(BIN_DIR)/iotcode/MotionSensor #cd $(BIN_DIR)/iotcode/MotionSensor; $(JAR) $(JARFLAGS) MotionSensor.jar ../../iotcode/MotionSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class cd $(BIN_DIR)/iotcode/MotionSensor; $(JAR) $(JARFLAGS) MotionSensor.jar ../../iotcode/MotionSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class @@ -117,6 +132,7 @@ PHONY += multipurpose multipurpose: $(JAVAC) $(JFLAGS) MultipurposeSensor/*.java cp MultipurposeSensor/MultipurposeSensor.config $(BIN_DIR)/iotcode/MultipurposeSensor + cp MultipurposeSensor/MultipurposeSensor.tomoyo $(BIN_DIR)/iotcode/MultipurposeSensor #cd $(BIN_DIR)/iotcode/MultipurposeSensor; $(JAR) $(JARFLAGS) MultipurposeSensor.jar ../../iotcode/MultipurposeSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class cd $(BIN_DIR)/iotcode/MultipurposeSensor; $(JAR) $(JARFLAGS) MultipurposeSensor.jar ../../iotcode/MultipurposeSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class @@ -124,6 +140,7 @@ PHONY += waterleak waterleak: $(JAVAC) $(JFLAGS) WaterLeakSensor/*.java cp WaterLeakSensor/WaterLeakSensor.config $(BIN_DIR)/iotcode/WaterLeakSensor + cp WaterLeakSensor/WaterLeakSensor.tomoyo $(BIN_DIR)/iotcode/WaterLeakSensor #cd $(BIN_DIR)/iotcode/WaterLeakSensor; $(JAR) $(JARFLAGS) WaterLeakSensor.jar ../../iotcode/WaterLeakSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class cd $(BIN_DIR)/iotcode/WaterLeakSensor; $(JAR) $(JARFLAGS) WaterLeakSensor.jar ../../iotcode/WaterLeakSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class @@ -131,12 +148,14 @@ PHONY += doorlock doorlock: $(JAVAC) $(JFLAGS) DoorlockSensor/*.java cp DoorlockSensor/DoorlockSensor.config $(BIN_DIR)/iotcode/DoorlockSensor + cp DoorlockSensor/DoorlockSensor.tomoyo $(BIN_DIR)/iotcode/DoorlockSensor cd $(BIN_DIR)/iotcode/DoorlockSensor; $(JAR) $(JARFLAGS) DoorlockSensor.jar ../../iotcode/DoorlockSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class PHONY += doorlockactuator doorlockactuator: $(JAVAC) $(JFLAGS) DoorlockActuator/*.java cp DoorlockActuator/DoorlockActuator.config $(BIN_DIR)/iotcode/DoorlockActuator + cp DoorlockActuator/DoorlockActuator.tomoyo $(BIN_DIR)/iotcode/DoorlockActuator cd $(BIN_DIR)/iotcode/DoorlockActuator; $(JAR) $(JARFLAGS) DoorlockActuator.jar ../../iotcode/DoorlockActuator/*.class ../../iotcode/interfaces/SmartthingsActuator*.class ../../iotcode/interfaces/Camera*.class # Compile - with checker @@ -145,42 +164,49 @@ PHONY += check-light check-light: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) LifxLightBulb/*.java cp LifxLightBulb/LifxLightBulb.config $(BIN_DIR)/iotcode/LifxLightBulb + cp LifxLightBulb/LifxLightBulb.tomoyo $(BIN_DIR)/iotcode/LifxLightBulb cd $(BIN_DIR)/iotcode/LifxLightBulb; $(JAR) $(JARFLAGS) LifxLightBulb.jar ../../iotcode/LifxLightBulb/*.class ../../iotcode/interfaces/LightBulb*.class PHONY += check-camera check-camera: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) AmcrestCamera/*.java cp AmcrestCamera/AmcrestCamera.config $(BIN_DIR)/iotcode/AmcrestCamera + cp AmcrestCamera/AmcrestCamera.tomoyo $(BIN_DIR)/iotcode/AmcrestCamera cd $(BIN_DIR)/iotcode/AmcrestCamera; $(JAR) $(JARFLAGS) AmcrestCamera.jar ../../iotcode/AmcrestCamera/*.class ../../iotcode/interfaces/Camera*.class ../../iotcode/interfaces/Resolution*.class PHONY += check-labroom check-labroom: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) LabRoom/*.java cp LabRoom/LabRoom.config $(BIN_DIR)/iotcode/LabRoom + cp LabRoom/LabRoom.tomoyo $(BIN_DIR)/iotcode/LabRoom cd $(BIN_DIR)/iotcode/LabRoom; $(JAR) $(JARFLAGS) LabRoom.jar ../../iotcode/LabRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += check-greenlawn check-greenlawn: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) GreenLawn/*.java cp GreenLawn/GreenLawn.config $(BIN_DIR)/iotcode/GreenLawn + cp GreenLawn/GreenLawn.tomoyo $(BIN_DIR)/iotcode/GreenLawn cd $(BIN_DIR)/iotcode/GreenLawn; $(JAR) $(JARFLAGS) GreenLawn.jar ../../iotcode/GreenLawn/*.class ../../iotcode/interfaces/Lawn*.class PHONY += check-sprinkler check-sprinkler: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) EspSprinkler/*.java cp EspSprinkler/EspSprinkler.config $(BIN_DIR)/iotcode/EspSprinkler + cp EspSprinkler/EspSprinkler.tomoyo $(BIN_DIR)/iotcode/EspSprinkler cd $(BIN_DIR)/iotcode/EspSprinkler; $(JAR) $(JARFLAGS) EspSprinkler.jar ../../iotcode/EspSprinkler/*.class ../../iotcode/interfaces/Sprinkler*.class ../../iotcode/interfaces/ZoneState*.class PHONY += check-blossomsprinkler check-blossomsprinkler: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) BlossomSprinkler/*.java cp BlossomSprinkler/BlossomSprinkler.config $(BIN_DIR)/iotcode/BlossomSprinkler + cp BlossomSprinkler/BlossomSprinkler.tomoyo $(BIN_DIR)/iotcode/BlossomSprinkler cd $(BIN_DIR)/iotcode/BlossomSprinkler; $(JAR) $(JARFLAGS) BlossomSprinkler.jar ../../iotcode/BlossomSprinkler/*.class ../../iotcode/interfaces/Sprinkler*.class ../../iotcode/interfaces/ZoneState*.class PHONY += check-moisture check-moisture: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) SpruceSensor/*.java cp SpruceSensor/SpruceSensor.config $(BIN_DIR)/iotcode/SpruceSensor + cp SpruceSensor/SpruceSensor.tomoyo $(BIN_DIR)/iotcode/SpruceSensor #cd $(BIN_DIR)/iotcode/SpruceSensor; $(JAR) $(JARFLAGS) SpruceSensor.jar ../../iotcode/SpruceSensor/*.class ../../iotcode/interfaces/MoistureSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class cd $(BIN_DIR)/iotcode/SpruceSensor; $(JAR) $(JARFLAGS) SpruceSensor.jar ../../iotcode/SpruceSensor/*.class ../../iotcode/interfaces/MoistureSensor*.class ../../iotcode/interfaces/Camera*.class @@ -188,72 +214,84 @@ PHONY += check-weathergateway check-weathergateway: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) WeatherPhoneGateway/*.java cp WeatherPhoneGateway/WeatherPhoneGateway.config $(BIN_DIR)/iotcode/WeatherPhoneGateway + cp WeatherPhoneGateway/WeatherPhoneGateway.tomoyo $(BIN_DIR)/iotcode/WeatherPhoneGateway cd $(BIN_DIR)/iotcode/WeatherPhoneGateway; $(JAR) $(JARFLAGS) WeatherPhoneGateway.jar ../../iotcode/WeatherPhoneGateway/*.class ../../iotcode/interfaces/WeatherGateway*.class PHONY += check-audioroom check-audioroom: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) AudioRoom/*.java cp AudioRoom/AudioRoom.config $(BIN_DIR)/iotcode/AudioRoom + cp AudioRoom/AudioRoom.tomoyo $(BIN_DIR)/iotcode/AudioRoom cd $(BIN_DIR)/iotcode/AudioRoom; $(JAR) $(JARFLAGS) AudioRoom.jar ../../iotcode/AudioRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += check-gpsgateway check-gpsgateway: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) GPSPhoneGateway/*.java cp GPSPhoneGateway/GPSPhoneGateway.config $(BIN_DIR)/iotcode/GPSPhoneGateway + cp GPSPhoneGateway/GPSPhoneGateway.tomoyo $(BIN_DIR)/iotcode/GPSPhoneGateway cd $(BIN_DIR)/iotcode/GPSPhoneGateway; $(JAR) $(JARFLAGS) GPSPhoneGateway.jar ../../iotcode/GPSPhoneGateway/*.class ../../iotcode/interfaces/GPSGateway*.class PHONY += check-ihome check-ihome: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) IHome/*.java cp IHome/IHome.config $(BIN_DIR)/iotcode/IHome + cp IHome/IHome.tomoyo $(BIN_DIR)/iotcode/IHome cd $(BIN_DIR)/iotcode/IHome; $(JAR) $(JARFLAGS) IHome.jar ../../iotcode/IHome/*.class ../../iotcode/interfaces/Speaker*.class PHONY += check-homeroom check-homeroom: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) HomeRoom/*.java cp HomeRoom/HomeRoom.config $(BIN_DIR)/iotcode/HomeRoom + cp HomeRoom/HomeRoom.tomoyo $(BIN_DIR)/iotcode/HomeRoom cd $(BIN_DIR)/iotcode/HomeRoom; $(JAR) $(JARFLAGS) HomeRoom.jar ../../iotcode/HomeRoom/*.class ../../iotcode/interfaces/Room*.class PHONY += check-alarm check-alarm: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) EspAlarm/*.java cp DlinkAlarm/EspAlarm.config $(BIN_DIR)/iotcode/EspAlarm + cp DlinkAlarm/EspAlarm.tomoyo $(BIN_DIR)/iotcode/EspAlarm cd $(BIN_DIR)/iotcode/EspAlarm; $(JAR) $(JARFLAGS) EspAlarm.jar ../../iotcode/EspAlarm/*.class ../../iotcode/interfaces/Alarm*.class ../../iotcode/interfaces/ZoneState*.class PHONY += check-dlink-alarm check-dlink-alarm: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) DlinkAlarm/*.java cp EspAlarm/DlinkAlarm.config $(BIN_DIR)/iotcode/DlinkAlarm + cp EspAlarm/DlinkAlarm.tomoyo $(BIN_DIR)/iotcode/DlinkAlarm cd $(BIN_DIR)/iotcode/DlinkAlarm; $(JAR) $(JARFLAGS) DlinkAlarm.jar ../../iotcode/DlinkAlarm/*.class ../../iotcode/interfaces/Alarm*.class ../../iotcode/interfaces/ZoneState*.class PHONY += check-motion check-motion: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) MotionSensor/*.java cp MotionSensor/MotionSensor.config $(BIN_DIR)/iotcode/MotionSensor + cp MotionSensor/MotionSensor.tomoyo $(BIN_DIR)/iotcode/MotionSensor cd $(BIN_DIR)/iotcode/MotionSensor; $(JAR) $(JARFLAGS) MotionSensor.jar ../../iotcode/MotionSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class PHONY += check-multipurpose check-multipurpose: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) MultipurposeSensor/*.java cp MultipurposeSensor/MultipurposeSensor.config $(BIN_DIR)/iotcode/MultipurposeSensor + cp MultipurposeSensor/MultipurposeSensor.tomoyo $(BIN_DIR)/iotcode/MultipurposeSensor cd $(BIN_DIR)/iotcode/MultipurposeSensor; $(JAR) $(JARFLAGS) MultipurposeSensor.jar ../../iotcode/MultipurposeSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class PHONY += check-waterleak check-waterleak: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) WaterLeakSensor/*.java cp WaterLeakSensor/WaterLeakSensor.config $(BIN_DIR)/iotcode/WaterLeakSensor + cp WaterLeakSensor/WaterLeakSensor.tomoyo $(BIN_DIR)/iotcode/WaterLeakSensor cd $(BIN_DIR)/iotcode/WaterLeakSensor; $(JAR) $(JARFLAGS) WaterLeakSensor.jar ../../iotcode/WaterLeakSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class ../../IrrigationController/MotionDetection*.class PHONY += check-doorlock check-doorlock: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) DoorlockSensor/*.java cp DoorlockSensor/DoorlockSensor.config $(BIN_DIR)/iotcode/DoorlockSensor + cp DoorlockSensor/DoorlockSensor.tomoyo $(BIN_DIR)/iotcode/DoorlockSensor cd $(BIN_DIR)/iotcode/DoorlockSensor; $(JAR) $(JARFLAGS) DoorlockSensor.jar ../../iotcode/DoorlockSensor/*.class ../../iotcode/interfaces/SmartthingsSensor*.class ../../iotcode/interfaces/Camera*.class PHONY += check-doorlockactuator check-doorlockactuator: $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) DoorlockActuator/*.java cp DoorlockActuator/DoorlockActuator.config $(BIN_DIR)/iotcode/DoorlockActuator + cp DoorlockActuator/DoorlockActuator.tomoyo $(BIN_DIR)/iotcode/DoorlockActuator cd $(BIN_DIR)/iotcode/DoorlockActuator; $(JAR) $(JARFLAGS) DoorlockActuator.jar ../../iotcode/DoorlockActuator/*.class ../../iotcode/interfaces/SmartthingsActuator*.class ../../iotcode/interfaces/Camera*.class .PHONY: $(PHONY) diff --git a/benchmarks/drivers/Java/MotionSensor/MotionSensor.config b/benchmarks/drivers/Java/MotionSensor/MotionSensor.config index 73b43f1..5056c9b 100644 --- a/benchmarks/drivers/Java/MotionSensor/MotionSensor.config +++ b/benchmarks/drivers/Java/MotionSensor/MotionSensor.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SmartthingsSensorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/MultipurposeSensor/MultipurposeSensor.config b/benchmarks/drivers/Java/MultipurposeSensor/MultipurposeSensor.config index 73b43f1..5056c9b 100644 --- a/benchmarks/drivers/Java/MultipurposeSensor/MultipurposeSensor.config +++ b/benchmarks/drivers/Java/MultipurposeSensor/MultipurposeSensor.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SmartthingsSensorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/SpruceSensor/SpruceSensor.config b/benchmarks/drivers/Java/SpruceSensor/SpruceSensor.config index a9bb3cb..21a5f20 100644 --- a/benchmarks/drivers/Java/SpruceSensor/SpruceSensor.config +++ b/benchmarks/drivers/Java/SpruceSensor/SpruceSensor.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=MoistureSensorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/WaterLeakSensor/WaterLeakSensor.config b/benchmarks/drivers/Java/WaterLeakSensor/WaterLeakSensor.config index 73b43f1..5056c9b 100644 --- a/benchmarks/drivers/Java/WaterLeakSensor/WaterLeakSensor.config +++ b/benchmarks/drivers/Java/WaterLeakSensor/WaterLeakSensor.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=SmartthingsSensorSmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/benchmarks/drivers/Java/WeatherPhoneGateway/WeatherPhoneGateway.config b/benchmarks/drivers/Java/WeatherPhoneGateway/WeatherPhoneGateway.config index 7aa1ac2..efa5fcb 100644 --- a/benchmarks/drivers/Java/WeatherPhoneGateway/WeatherPhoneGateway.config +++ b/benchmarks/drivers/Java/WeatherPhoneGateway/WeatherPhoneGateway.config @@ -5,3 +5,6 @@ INTERFACE_STUB_CLASS=WeatherGatewaySmart # Language LANGUAGE=Java + +# Tomoyo +ADDITIONAL_MAC_POLICY=No diff --git a/iotjava/iotruntime/master/IoTMaster.java b/iotjava/iotruntime/master/IoTMaster.java index 2d5b44f..454ca30 100644 --- a/iotjava/iotruntime/master/IoTMaster.java +++ b/iotjava/iotruntime/master/IoTMaster.java @@ -127,6 +127,7 @@ public final class IoTMaster { private static final String STR_INT_STUB_CLS_CFG = "INTERFACE_STUB_CLASS"; private static final String STR_FILE_TRF_CFG = "ADDITIONAL_ZIP_FILE"; private static final String STR_LANGUAGE = "LANGUAGE"; + private static final String STR_ADD_MAC_POL = "ADDITIONAL_MAC_POLICY"; private static final String STR_YES = "Yes"; private static final String STR_NO = "No"; private static final String STR_JAVA = "Java"; @@ -645,6 +646,12 @@ public final class IoTMaster { processJailConfig.configureProcessJailDeviceDriverPolicies(strIoTSlaveObjectHostAdd, strObjName, strObjClassName, strFileName, strIoTMasterHostAdd, commHan.getComPort(strObjName), commHan.getRMIRegPort(strObjName), commHan.getRMIStubPort(strObjName)); + // Check for additional MAC policy + String strMACConfigPath = STR_IOT_CODE_PATH + strObjClassName + "/"; + String strCfgFile = strMACConfigPath + strObjClassName + STR_CFG_FILE_EXT; + String strAddMACPolicy = parseConfigFile(strCfgFile, STR_ADD_MAC_POL); + if (strAddMACPolicy != null && strAddMACPolicy.equals("Yes")) + processJailConfig.combineAdditionalMACPolicy(strMACConfigPath, strObjClassName, strIoTSlaveObjectHostAdd); processJailConfig.configureProcessJailContRMIPolicies(strObjControllerName, strIoTSlaveObjectHostAdd, commHan.getRMIRegPort(strObjName), commHan.getRMIStubPort(strObjName)); } @@ -1996,6 +2003,7 @@ public final class IoTMaster { strIoTMasterHostAdd = routerConfig.getIPFromMACAddress(STR_MASTER_MAC_ADD); // Assign a new list of PrintWriter objects routerConfig.renewPrintWriter(); + HashSet setAddresses = null; // Loop as we can still find controller/device classes for(int i=0; i setAddresses = new HashSet(commHan.getHosts()); + setAddresses = new HashSet(commHan.getHosts()); setAddresses.add(strIoTMasterHostAdd); createPolicyThreads(STR_ROUTER_ADD, setAddresses); @@ -2214,11 +2228,12 @@ public final class IoTMaster { commHan.printLists(); commHan.clearCommunicationHandler(); lbIoT.printHostInfo(); - if (STR_ACTIVATE_SANDBOXING.equals("Yes")) - createMACPolicyThreads(setAddresses); } // Close access to policy files and deploy policies routerConfig.close(); + processJailConfig.close(); + if (STR_ACTIVATE_SANDBOXING.equals("Yes")) + createMACPolicyThreads(setAddresses); } catch (IOException | InterruptedException | diff --git a/iotjava/iotruntime/master/ProcessJailConfig.java b/iotjava/iotruntime/master/ProcessJailConfig.java index e19ee15..fba8cad 100644 --- a/iotjava/iotruntime/master/ProcessJailConfig.java +++ b/iotjava/iotruntime/master/ProcessJailConfig.java @@ -36,6 +36,7 @@ public final class ProcessJailConfig { private static final String STR_TCPGW_PROTOCOL = "tcpgw"; private static final String STR_NO_PROTOCOL = "nopro"; + private static final String STR_ADD_MAC_EXT = ".tomoyo"; private static final String STR_MAC_POLICY_EXT = ".tomoyo.pol"; private static final String STR_OBJECT_NAME = ""; private static final String STR_OBJECT_CLASS_NAME = ""; @@ -104,6 +105,19 @@ public final class ProcessJailConfig { } } + + /** + * flush() flushes all PrintWriter objects + * + * @return void + */ + public void flush() { + + for(PrintWriter pwConfig: mapHostToFile.values()) { + pwConfig.flush(); + } + } + /** * close() closes all PrintWriter objects @@ -403,6 +417,21 @@ public final class ProcessJailConfig { } + /** + * combineAdditionalMACPolicy() method combines the additional MAC policies into the right host policy file + * + * @param strConfigHost String hostname to be configured + * @param strFileName String policy file path and name + * @return void + */ + public void combineAdditionalMACPolicy(String strMACCfgPath, String strObjectName, String strConfigHost) { + + PrintWriter pwConfig = getPrintWriter(strConfigHost); + String strPolicyList = readFile(strMACCfgPath + strObjectName + STR_ADD_MAC_EXT); + pwConfig.println(strPolicyList); + } + + /** * combineControllerMACPolicies() method combines the controller MAC policies into the right host policy file * diff --git a/localconfig/mysql/cameras.config b/localconfig/mysql/cameras.config index 0a35a61..e84b464 100644 --- a/localconfig/mysql/cameras.config +++ b/localconfig/mysql/cameras.config @@ -1,5 +1,5 @@ SELECT * FROM CameraSmart WHERE -ID='CM3' OR ID='CM4' +ID='CM1' or ID='CM2' ; diff --git a/localconfig/mysql/iotcloudServer.config b/localconfig/mysql/iotcloudServer.config index 7970cff..9408186 100644 --- a/localconfig/mysql/iotcloudServer.config +++ b/localconfig/mysql/iotcloudServer.config @@ -1,5 +1,5 @@ -SELECT * FROM -IoTAddress -WHERE -ID='CL1' -; +SELECT * FROM +IoTAddress +WHERE +ID='CL1' +; diff --git a/localconfig/mysql/lawnSprinklerRelation.config b/localconfig/mysql/lawnSprinklerRelation.config index 5da7318..4403ee9 100644 --- a/localconfig/mysql/lawnSprinklerRelation.config +++ b/localconfig/mysql/lawnSprinklerRelation.config @@ -4,5 +4,5 @@ LawnSmart OTHER SprinklerSmart WHERE -ID_DESTINATION='SP1' +ID_DESTINATION='SP2' ; diff --git a/localconfig/mysql/lifx_light_bulb.config b/localconfig/mysql/lifx_light_bulb.config index 11171b0..f5a89aa 100644 --- a/localconfig/mysql/lifx_light_bulb.config +++ b/localconfig/mysql/lifx_light_bulb.config @@ -1,3 +1,5 @@ SELECT * FROM LightBulb +WHERE +ID='LB1' ;