Return-Path: X-Original-To: apmail-cxf-issues-archive@www.apache.org Delivered-To: apmail-cxf-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 247379FA8 for ; Tue, 6 Mar 2012 08:09:25 +0000 (UTC) Received: (qmail 24283 invoked by uid 500); 6 Mar 2012 08:09:24 -0000 Delivered-To: apmail-cxf-issues-archive@cxf.apache.org Received: (qmail 23031 invoked by uid 500); 6 Mar 2012 08:09:22 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 22990 invoked by uid 99); 6 Mar 2012 08:09:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Mar 2012 08:09:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Mar 2012 08:09:19 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id D91D4BFFF for ; Tue, 6 Mar 2012 08:08:58 +0000 (UTC) Date: Tue, 6 Mar 2012 08:08:58 +0000 (UTC) From: "Jan Bernhardt (Commented) (JIRA)" To: issues@cxf.apache.org Message-ID: <473820048.26428.1331021338890.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <673490365.76091.1327483242073.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (CXF-4062) Enabling custom claim parser MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/CXF-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223078#comment-13223078 ] Jan Bernhardt commented on CXF-4062: ------------------------------------ Colm O hEigeartaigh commented on CXF-4062: ------------------------------------------ Hi Jan, Sure, but is it meant to be used as a child of the wst:Claims Element? Can you point me to any examples of this? Correct me if I'm wrong, but as far as I understand the WS-Trust spec: * WS-Trust "Claims" element contains an attribute "Dialect" which indicates the type of claims contained in the WS-Trust Claims element. * WS-Trust schema definition expects a sequence of ANY elements within Claims element * If the dialect is set to "http://schemas.xmlsoap.org/ws/2005/05/identity" than any element defined in this namespace could appear with in WS-Trust Claims element. Since the element ClaimValue is defined in "http://schemas.xmlsoap.org/ws/2005/05/identity" namespace the following statement should be valid according to the specifications: http://...#SAMLV1.1 http://.../PublicKey administrator The usecase for this is, that a consumer needs a SAML Token containing _only_ a specific role attribute statement and not a list of all roles assigned to a given user. The STS would have to parse this Claim Request and check (via ClaimHandler) if the user is assigned to the requested role. If this is the case, a SAML Token will be created containing only this specifically requested role. In the current version of CXF STS would not be able to parse such a STR, because it only expects a "ic:ClaimType" element within "t:Claims". Which is only a small subset of the dialect "http://schemas.xmlsoap.org/ws/2005/05/identity". @Oli Role transformation would not solve this issue, since I do not want to transform a previously requested claim of a token, but instead request convermation for only a specific ClaimValue (here: administrator). I hope this subject has become more clear now... ;-) I'm looking forward for your reply to this message! Best regards Jan > Enabling custom claim parser > ---------------------------- > > Key: CXF-4062 > URL: https://issues.apache.org/jira/browse/CXF-4062 > Project: CXF > Issue Type: Improvement > Affects Versions: 2.5.2 > Reporter: Jan Bernhardt > Labels: Claims, STS > Attachments: claimParer.patch > > > STS-core: > Currently there is now way to use a custom dialect in requested claims. Even http://schemas.xmlsoap.org/ws/2005/05/identity/claims is not fully supported (only ClaimType element). > Therefore I introduced a new Interface ClaimParser, and a DefaultClaimParser with the current parsing logic. This parser is called by default within RequestParser, so that the normal cxf behavior has not changed. But to make this process more flexible it is possible (with this patch) to register any kind of ClaimParser supporting a specific dialect. I implemented a IdentityClaimParser which is currently able to parser CustomType and CustomValueType elements within the wst:claims element. Since the current RequestClaim does not support any claim values, except of the Uri attribute, I created a SubClass ClaimValueType to also pass the claim value to the claim handler. > This patch is just a starting point. I think there should be a more complex redesign of the current claim handling implementation, because it is currently focused on only one Use-Case. The following improvements should be made: > * The RequestClaim class should be replaced by a more flexible interface supporting any kind of parsing and handling custom dialects. > * It should be possible to include/configure custom claimparser via spring config > * A fully supported implementation of http://schemas.xmlsoap.org/ws/2005/05/identity/claims dialect would be great > Here is an example of a claims STS request which is supported by applying this patch: > > admin > > Thank you for this great product!! I hope this patch can help to further improve CXF. > Best regards > Jan -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira