diff --git a/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java b/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java index 5b24369897bede3c84044cdbe64f63238ef5f90e..54fd4ca8c97db2326fe93af452ca44a239bff070 100644 --- a/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java +++ b/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java @@ -1834,12 +1834,29 @@ public class TML2Avatar { for (SecurityPattern secPattern : secPatterns) { AvatarAttribute sec = block.getAvatarAttributeWithName(secPattern.name); if (sec != null) { + boolean checkAuthSecPattern = false; + for (TMLChannel ch : tmlmodel.getChannels(task)) { + if (ch.hasOriginTask(task) && ch.isCheckConfChannel()) { + TraceManager.addDev("1842 ch.name= " + ch.getName()); + for (TMLActivityElement actElem : task.getActivityDiagram().getElements()){ + if (actElem instanceof TMLWriteChannel) { + TMLWriteChannel wc = (TMLWriteChannel) actElem; + if(wc.hasChannel(ch) && actElem.securityPattern.getName().equals(secPattern.getName())){ + checkAuthSecPattern = true; + break; + } + } + } + } + } //sec = new AvatarAttribute(secPattern.name, AvatarType.INTEGER, block, null); //AvatarAttribute enc = new AvatarAttribute(secPattern.name+"_encrypted", AvatarType.INTEGER, block, null); // block.addAttribute(sec); // block.addAttribute(enc); //} - avspec.addPragma(new AvatarPragmaSecret("#Confidentiality " + block.getName() + "." + secPattern.name, null, sec)); + if (checkAuthSecPattern) { + avspec.addPragma(new AvatarPragmaSecret("#Confidentiality " + block.getName() + "." + secPattern.name, null, sec)); + } } }