2016-07-06 7 views
1

우리는 허용 및 거부 조건 모두에 대한 자세한 로그 메시지를 생성해야하는 정책에 일련의 규칙을 작성하라는 요청을 받았습니다. 결과 로그 출력은 여러 속성의 구성이거나 XACML 요청 입력 또는 PIP Java 루틴에서 전송됩니다. PIP Java 루틴에서는 UTC 로그 이벤트 시간 및 데이터 소스의 서비스 상태와 같은 추가 속성을 속성 세트 데이터베이스에서. 모든 정보는 문자열을 최종 데이터베이스 로깅 단계로 변환하는 XACML 의무를 통해 PEP로 전송되어야합니다.ALFA에서 XACML 문자열 조작 기능을 자동화하는 방법은 무엇입니까?

ALFA 언어로 재사용 가능한 함수를 만드는 방법은 Java 프로그래밍 방식과 비슷한 방식으로 모든 필수 String 조작 명령문을 호출 가능한 방식으로 그룹화하여 중복 코드 섹션 작성을 방지합니다.

답변

0

은 어떤 그룹에 관심이있는 모든 것 사용자 정의 함수를 정의하는 ALFA의 현재 버전의 방법이되지 않습니다.

그러나, 당신은 아주 잘 조언을 포함하는 규칙을 정의 할 수 있습니다/의무를 모든 논리와 함께 사용하고 필요한 모든 장소에서 규칙을 참조하십시오.

namespace so{ 
    import Attributes.* 
    attribute messageContent{ 
     category = environmentCat 
     id = "messageContent" 
     type = string 
    } 
    obligation message = "message" 
    /** 
    * Reusable rule with obligation pattern 
    */ 
    rule giveReason{ 
     deny 
     on deny { 
      obligation message{ 
       subjectId = subjectId 
       currentDateTime = currentDateTime 
       messageContent = "Hi, "+stringOneAndOnly(subjectId)+ 
           ". You cannot do action "+ 
           stringOneAndOnly(Attributes.actionId)+ 
           " on "+stringOneAndOnly(resourceId)+ 
           " at "+stringFromDateTime(dateTimeOneAndOnly(currentDateTime))+"." 
      } 
     } 
    } 

    /** 
    * Your policies 
    */ 
    policyset somePS{ 
     apply firstApplicable 
     policy example1{ 
      apply firstApplicable 
      /** 
       * Other rules go here 
       */ 
      giveReason // link to common rule 
     } 
     policy example2{ 
      apply firstApplicable 
      /** 
       * Other rules go here 
       */ 
      giveReason // link to common rule 
     } 
    } 
} 
: ALFA, 당신은 (XML/XACML에 수 없습니다 뭔가를) 규칙 요소를 여기

은 예입니다 참조 할 수 있습니다