![](/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.