本文整理汇总了Java中net.floodlightcontroller.accesscontrollist.IACLService类的典型用法代码示例。如果您正苦于以下问题:Java IACLService类的具体用法?Java IACLService怎么用?Java IACLService使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IACLService类属于net.floodlightcontroller.accesscontrollist包,在下文中一共展示了IACLService类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleRequest
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
@Get("json")
public Object handleRequest() {
IACLService acl = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
return acl.getRules();
}
示例2: store
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
/**
* parse a JSON string into a ACL rule instance, then add it to the ACL
* @return A string status message
*/
@Post
public String store(String json) {
IACLService aclService = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
ACLRule newRule;
try {
newRule = jsonToRule(json);
} catch (Exception e) {
log.error("Error parsing ACL rule: " + json, e);
return "{\"status\" : \"Failed! " + e.getMessage() + "\"}";
}
String status = null;
String nw_src = newRule.getNw_src();
String nw_dst = newRule.getNw_dst();
if (nw_src == null && nw_dst == null){
status = "Failed! Either nw_src or nw_dst must be specified.";
return ("{\"status\" : \"" + status + "\"}");
}
if(aclService.addRule(newRule)){
status = "Success! New rule added.";
}else{
status = "Failed! The new ACL rule matches an existing rule.";
}
return ("{\"status\" : \"" + status + "\"}");
}
示例3: remove
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
/**
* parse a JSON string into a ACL rule instance, then remove it from the ACL
* @return A string status message
*/
@Delete
public String remove(String json) {
IACLService ACL = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
ACLRule rule;
try {
rule = jsonToRule(json);
} catch (Exception e) {
log.error("Error parsing ACL rule: " + json, e);
return "{\"status\" : \"Failed! " + e.getMessage() + "\"}";
}
// check whether the rule exists
boolean exists = false;
Iterator<ACLRule> iter = ACL.getRules().iterator();
while (iter.hasNext()) {
ACLRule r = iter.next();
if (r.getId() == rule.getId()) {
exists = true;
break;
}
}
String status = null;
if (!exists) {
status = "Failed! a rule with this ID doesn't exist.";
log.error(status);
} else {
ACL.removeRule(rule.getId());
status = "Success! Rule deleted";
}
return ("{\"status\" : \"" + status + "\"}");
}
示例4: ClearACRules
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
@Get
public void ClearACRules() {
IACLService acl = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
acl.removeAllRules();
}
示例5: testRemove
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
@Test
public void testRemove(){
ACL s = new ACL();
FloodlightModuleContext fmc = new FloodlightModuleContext();
try {
s.init(fmc);
} catch (FloodlightModuleException e) {
e.printStackTrace();
}
ACLRuleResource r = new ACLRuleResource();
Context ctx = new Context();
r.init(ctx, null, null);
r.getContext().getAttributes().putIfAbsent(IACLService.class.getCanonicalName(), s);
// input a valid JSON string
String json = "{\"nw-proto\":\"TCP\",\"src-ip\":\"10.0.0.1/32\",\"dst-ip\": \"10.0.0.2/32\",\"tp-dst\":\"80\",\"action\":\"ALLOW\"}";
assertEquals(r.store(json),"{\"status\" : \"" + "Success! New rule added." + "\"}");
// input a invalid JSON string that contains a invalid ruleid value
json = "{\"ruleid\":\"a\"}";
assertEquals(r.remove(json),"{\"status\" : \"" + "Failed! ruleid must be specified as a number." + "\"}");
// input a invalid JSON string that contains a non-existing ruleid value
json = "{\"ruleid\":\"2\"}";
assertEquals(r.remove(json),"{\"status\" : \"" + "Failed! a rule with this ID doesn't exist." + "\"}");
// input a valid JSON string that removes an existing ACL rule
json = "{\"ruleid\":\"1\"}";
assertEquals(r.remove(json),"{\"status\" : \"" + "Success! Rule deleted" + "\"}");
}
示例6: store
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
/**
* parse a JSON string into a ACL rule instance, then add it to the ACL
* @return A string status message
*/
@Post
public String store(String json) {
IACLService aclService = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
ACLRule newRule;
try {
newRule = jsonToRule(json);
} catch (Exception e) {
log.error("Error parsing ACL rule: " + json, e);
return "{\"status\" : \"Failed! " + e.getMessage() + "\"}";
}
String status = null;
String nw_src = newRule.getNw_src();
String nw_dst = newRule.getNw_dst();
if (nw_src == null && nw_dst == null){
status = "Failed! Either nw_src or nw_dst must be specified.";
return ("{\"status\" : \"" + status + "\"}");
}
if(aclService.addRule(newRule)){
status = "Success! New rule added.";
}else{
status = "Failed! The new ACL rule matches an existing rule.";
}
return ("{\"status\" : \"" + status + "\"}");
}
示例7: remove
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
/**
* parse a JSON string into a ACL rule instance, then remove it from the ACL
* @return A string status message
*/
@Delete
public String remove(String json) {
IACLService ACL = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
ACLRule rule;
try {
rule = jsonToRule(json);
} catch (Exception e) {
log.error("Error parsing ACL rule: " + json, e);
return "{\"status\" : \"Failed! " + e.getMessage() + "\"}";
}
// check whether the rule exists
boolean exists = false;
Iterator<ACLRule> iter = ACL.getRules().iterator();
while (iter.hasNext()) {
ACLRule r = iter.next();
if (r.getId() == rule.getId()) {
exists = true;
break;
}
}
String status = null;
if (!exists) {
status = "Failed! a rule with this ID doesn't exist.";
log.error(status);
} else {
ACL.removeRule(rule.getId());
status = "Success! Rule deleted";
}
return ("{\"status\" : \"" + status + "\"}");
}
示例8: ClearACRules
import net.floodlightcontroller.accesscontrollist.IACLService; //导入依赖的package包/类
@Get
public void ClearACRules() {
IACLService acl = (IACLService) getContext().getAttributes().get(
IACLService.class.getCanonicalName());
acl.removeAllRules();
}