2011-10-10 3 views
0

policie 파일의 openSAML2 API를 사용하여 XACMLObject를 구축하는 방법을 알려주는 훌륭한 튜토리얼 링크를 제공 해줄 수 있습니까? 감사합니다.opensaml을 사용하여 XACML Policie 파일을 비 정렬 화합니다

+0

내가 구글에 얻을 첫 번째 페이지는 http://bit.ly/rmSZsL – dirbacke

+0

내가 실제로이 페이지를 보았다, 답변 주셔서 감사하지만, 그것은 단지 XAML - SAML 어설 션을 다루는 방법 요청을 처리하는 것입니다 및 대답,하지만 내가 필요한 모든 것은 XACML 정책 파일 (예 : 대상 및이 대상에 액세스하는 데 필요한 의무) 내에서 정책을 추출하는 것이지만 다른 API 나 프레임 워크를 사용하는 다른 솔루션이있는 경우 SAML과 함께 사용할 필요가 없습니다. 그러한 도움을 얻는다면 감사 할 것이다. –

답변

1

이 목적으로 OpenSAML 라이브러리를 사용하지 않았습니다. 그러나 저는 XACML 요청과 응답을 포함한 다른 목적으로 사용했습니다. 다음은 아이디어를 얻는 데 도움이 될 수 있습니다. 그것은 문자열로부터 XACMLRequest를 생성합니다.

private String extractXACMLRequest(String decisionQuery) throws Exception { 
    RequestType xacmlRequest = null; 
    doBootstrap(); 
    String queryString = null; 
    XACMLAuthzDecisionQueryType xacmlAuthzDecisionQuery; 
    try { 
     xacmlAuthzDecisionQuery = (XACMLAuthzDecisionQueryType) unmarshall(decisionQuery); 
     //Access the XACML request only if Issuer and the Signature are valid. 
     if (validateIssuer(xacmlAuthzDecisionQuery.getIssuer())) { 
       if (validateSignature(xacmlAuthzDecisionQuery.getSignature())) { 
        xacmlRequest = xacmlAuthzDecisionQuery.getRequest(); 
       } else { 
        log.debug("The submitted signature is not valid!"); 
       } 
     } else { 
      log.debug("The submitted issuer is not valid!"); 
     } 

     if (xacmlRequest != null) { 
      queryString = marshall(xacmlRequest); 
      queryString = queryString.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "").replace("\n", ""); 
     } 
     return queryString; 
    } catch (Exception e) { 
     log.error("Error unmarshalling the XACMLAuthzDecisionQuery.", e); 
     throw new Exception("Error unmarshalling the XACMLAuthzDecisionQuery.", e); 
    } 

} 
0

openSAML2가 아닌 XACML 정책을 마샬링/언 마샬링하려면 sunXACML 또는 JAXB를 사용하고 싶습니다.