非常に単純で基本的な手順で Balana コードを使用して単純なポリシーを作成したいだけです。このポリシーには、Balana! でポリシーを作成する方法を確認するためだけに、1 つのリソースと 1 つのルールのみが含まれています。これが私のコードです
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) を呼び出すと、スレッド「メイン」java.lang.NullPointerException で例外というエラーが発生しました。私のコードのどこに問題がありますか
実際には、いくつかのパラメーターのみを指定してポリシーを作成したいと考えています.. (つまり、サブジェクト、アクション、リソース)。誰でも私を導くことができます。私はバラナの初心者です。ですから、一歩一歩助けてください。