[ 
https://issues.apache.org/jira/browse/CXF-6401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14545555#comment-14545555
 ] 

Stuart Charlton edited comment on CXF-6401 at 5/15/15 2:21 PM:
---------------------------------------------------------------

Hi Colm,  

I'm not sure this fixed the issue.   I've run this through a debugger and the 
SAML Principal is indeed created, but then the loop continues to run and the 
WSConstants.ST_SIGNED or WSConstants.ST_UNSIGNED principal is overridden by 
WSConstants.SIGN.   

Perhaps what you want is a labelled break to get out of the outer loop ,


was (Author: svrc):
Hi Colm,  

I'm not sure this fixed the issue.   I've run this through a debugger and the 
SAML Principal is indeed created, but then the loop continues to run and the 
WSConstants.ST_SIGNED or WSConstants.ST_UNSIGNED principal is overridden by 
WSConstants.SIGN.   

Perhaps what you want is a labelled break to get out of the outer loop , i.e.

index a08251c..140d522 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
@@ -560,6 +560,7 @@ public class WSS4JInInterceptor extends 
AbstractWSS4JInterceptor {
         resultPriorities.add(WSConstants.SIGN);
         resultPriorities.add(WSConstants.UT_NOPASSWORD);
         
+    outer:
         for (Integer resultPriority : resultPriorities) {
             if (resultPriority == WSConstants.ST_UNSIGNED && 
!allowUnsignedSamlPrincipals) {
                 continue;
@@ -582,7 +583,7 @@ public class WSS4JInInterceptor extends 
AbstractWSS4JInterceptor {
                         createSecurityContext(msg, useJAASSubject, result, 
utWithCallbacks);
                     if (context != null) {
                         msg.put(SecurityContext.class, context);
-                        break;
+                        break outer;
                     }
                 }
             }

> Change the order that the set of security results are searched to create a 
> security context
> -------------------------------------------------------------------------------------------
>
>                 Key: CXF-6401
>                 URL: https://issues.apache.org/jira/browse/CXF-6401
>             Project: CXF
>          Issue Type: Improvement
>            Reporter: Colm O hEigeartaigh
>            Assignee: Colm O hEigeartaigh
>             Fix For: 3.1.1, 3.0.6
>
>
> Right now we search the list of security results from WSS4J from the last 
> result backwards, and stop when we meet a result that can be used to create a 
> security context. However, we should instead create a list of desired 
> tokens/actions with a priority to each one. So for example, if a (signed) 
> SAML token is in the security header, this should have a higher priority than 
> say a Signature, as the likely intention of the service logic is that the 
> SAML Token encapsulates the user identity.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to