![](/img/trans.png)
[英]WSO2 ESB XACML Authorization rest/soap web services client java
[英]XACML application on SOAP Web Services
您可以在Colm O hEigeartaigh 的博客(Colm 是主要的 CXF 開發人員之一)上找到執行基於 XACML (XACML 3.0) 授權的 CXF 攔截器示例。 CXF 攔截器的實際源代碼: XACML3AuthorizingInterceptor 。 它使用 OpenAZ 作為 XACML 實現,但您可以調整它以使用另一個 XACML 實現,例如 David Brossard 在這里提到的 Axiomatics,或 AuthzForce(支持嵌入式或遠程 RESTful PDP 模式),或XACML末尾提到的其他實現TC 的頁面。
CXF 攔截器的第一個重要部分是在handleMessage(Message message)
方法的開頭:
SecurityContext sc = message.get(SecurityContext.class);
SecurityContext
為您提供有關經過身份驗證的用戶的信息,例如用戶角色,您可以將這些信息用作 XACML 請求中的 XACML 主題屬性。
該代碼使用DefaultXACML3RequestBuilder 類進一步創建 XACML 請求, 該類使用CXFMessageParser從 CXF Message
中提取其他信息 - 您可以在cxf-rt-security-saml庫中找到 - 例如 SOAP 服務名稱、操作名稱(如定義在 WSDL 中)和端點 URI:
CXFMessageParser messageParser = new CXFMessageParser(message);
...
String actionToUse = messageParser.getAction(action);
...
QName serviceName = messageParser.getWSDLService();
QName operationName = messageParser.getWSDLOperation();
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.