2

我只想通过非常简单和基本的步骤使用 Balana 代码创建一个简单的策略!此策略仅包含一个资源和一个规则,只是为了了解如何在 Balana! 中创建策略。这是我的代码

MatchElementDTO medto = new MatchElementDTO();
    medto.setMatchId("urn:oasis:names:tc:xacml:1.0:function:string-equal");

    AttributeValueElementDTO avdto = new AttributeValueElementDTO();
    avdto.setAttributeValue("file");
    avdto.setAttributeDataType("http://www.w3.org/2001/XMLSchema#string");

    AttributeDesignatorDTO addto = new AttributeDesignatorDTO();
    addto.setAttributeId("urn:oasis:names:tc:xacml:1.0:resource:resource-id");
    addto.setCategory("urn:oasis:names:tc:xacml:3.0:attribute-category:resource");
    addto.setDataType("http://www.w3.org/2001/XMLSchema#string");
    addto.setMustBePresent("true");

    medto.setAttributeValueElementDTO(avdto);
    medto.setAttributeDesignatorDTO(addto);

    AllOfElementDTO aodto = new AllOfElementDTO();
    aodto.addMatchElementDTO(medto);
    List<AllOfElementDTO> allOfElementDTOs = new ArrayList<AllOfElementDTO>();
    allOfElementDTOs.add(aodto);

    AnyOfElementDTO aydto = new AnyOfElementDTO();
    aydto.setAllOfElementDTOs(allOfElementDTOs);
    List<AnyOfElementDTO> anyOfElementDTOs = new ArrayList<AnyOfElementDTO>();
    anyOfElementDTOs.add(aydto);

    TargetElementDTO tedto = new TargetElementDTO();
    tedto.setAnyOfElementDTOs(anyOfElementDTOs);

    RuleElementDTO redto = new RuleElementDTO();
    redto.setRuleId("ruleForFile");
    redto.setRuleEffect("Permit");
    redto.setTargetElementDTO(tedto);
    List<RuleElementDTO> ruleElementDTOs = new ArrayList<RuleElementDTO>();
    ruleElementDTOs.add(redto);
    // Creating Policy by  PolicyElementDTO
    PolicyElementDTO pedto = new PolicyElementDTO();
    pedto.setPolicyName("amirPolicy");
    pedto.setPolicyDescription("simple having one element policy");
    pedto.setRuleCombiningAlgorithms("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
    pedto.setRuleElementDTOs(ruleElementDTOs);
    pedto.setTargetElementDTO(tedto);
    pedto.setVersion("1.0");

    try {

        pb.build(pedto);
    } catch (PolicyBuilderException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

当我调用 build(PolicyElementDTO) .. 时,我在线程“main”java.lang.NullPointerException 中遇到异常错误。我的代码中的问题在哪里

实际上,我想通过仅提供一些参数来创建策略..(即主题、操作、资源)。任何人都可以指导我。我是巴拉纳的新手。所以请逐步帮助我。

4

0 回答 0