0

任何人都可以给我一个很好的教程的链接,它可以让我知道如何使用策略文件中的 openSAML2 api 构建 XACMLObject 吗?谢谢

4

2 回答 2

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);
    }

}
于 2013-11-12T09:16:26.650 回答
0

您想使用 sunXACML 或 JAXB 来编组/解组 XACML 策略而不是 openSAML2。

于 2013-09-19T19:10:44.160 回答