New here - OpenSAML and conditions/audience restrictions problem

o haya ohaya at yahoo.com
Fri Feb 15 19:17:03 EST 2019


Now that I got my test app to the point that it is kind of working, I have been looking at using OpenSAML 3.4 instead of 2.6.6.

Should I be able to just build the same Java app, using the opensaml 3.4 jar from nexus repo (https://build.shibboleth.net/nexus/content/repositories/releases/org/opensaml/)?  I would prefer to do that rather than using Maven, if possible.

Thanks,
Jim



--------------------------------------------
On Fri, 2/15/19, o haya <ohaya at yahoo.com> wrote:

 Subject: Re: New here - OpenSAML and conditions/audience restrictions problem
 To: "Shib Dev" <dev at shibboleth.net>
 Cc: "ohaya at yahoo.com" <ohaya at yahoo.com>
 Date: Friday, February 15, 2019, 4:09 PM
 
 
         Hi,
 I was
 able to get it to work now.  I had to add back (uncomment)
 the lines where the conditions and condition were
 created.
 Thanks!
 Jim
 P.S.  BTW, and yes, I will look
 into moving to a newer version of OpenSAML, but I ran into
 some problems trying to use the newer one before, but I
 wanted to try to get something working first.
 
 
 
 
         
         
             
                 
                 
                     On Friday, February 15, 2019, 3:42:11 PM
 EST, o haya <ohaya at yahoo.com> wrote:
                 
                 
 
                 
 
                 Hi,
 
 Thanks, maybe I am
 mis-reading what you were suggesting (the formatting on
 Yahoo email may be bad), but if I remove the parts that you
 mentioned:
 
 ====================================================================================================================================
 
 >
 > The part of my code
 that is building that is:
 >
 > 
            SAMLObjectBuilder
 audienceRestrictionConditionBuilder = (SAMLObjectBuilder)
 SAMLWriter.getSAMLBuilder().getBuilder(AudienceRestriction.DEFAULT_ELEMENT_NAME);
 >            
 Condition condition = (Condition)
 audienceRestrictionConditionBuilder.buildObject();
 
 
 Here you are building the
 empty one ...
 
 
 >
 >            
 SAMLObjectBuilder conditionsBuilder = (SAMLObjectBuilder)
 SAMLWriter.getSAMLBuilder().getBuilder(Conditions.DEFAULT_ELEMENT_NAME);
 >            
 Conditions conditions = (Conditions)
 conditionsBuilder.buildObject();
 >            
 conditions.getConditions().add(condition);
 
 
 ... and here you are
 adding the empty one to the Conditions.  You don't need
 to do this, or the above.
 
 ====================================================================================================================================
 
 both
 "conditions" and "condition" are
 undefined?
 
 
 Like I said, I may be
 mis-reading/misunderstanding what you were suggesting, but I
 think that this is what I got when I commented out the lines
 you mentioned:
 
 
            
 conditions.setNotBefore(now);
            
 conditions.setNotOnOrAfter(now2);
             
             SAMLObjectBuilder
 audienceRestrictionnBuilder = null;
            
 SAMLObjectBuilder audienceBuilder = null;
            
 audienceRestrictionnBuilder = (SAMLObjectBuilder)
 getSAMLBuilder().getBuilder(AudienceRestriction.DEFAULT_ELEMENT_NAME);
            
 audienceBuilder = (SAMLObjectBuilder)
 getSAMLBuilder().getBuilder(Audience.DEFAULT_ELEMENT_NAME);
             String
 audienceURI = "https://sandboxdtm01.xxx.dev/fed";
             
             //
 Create the audience
  
           Audience audience = (Audience)
 audienceBuilder.buildObject();
            
 audience.setAudienceURI(audienceURI);
 
             //
 Create the audience restriction
             AudienceRestriction
 audienceRestriction = (AudienceRestriction)
 audienceRestrictionnBuilder.buildObject();
 
             // add
 in the audience
    
        
 audienceRestriction.getAudiences().add(audience);
            
 conditions.getAudienceRestrictions().add(audienceRestriction);
             
 
 Jim
 
 
 
 
 
 
 
 --------------------------------------------
 On Fri, 2/15/19, Brent
 Putman <putmanb at georgetown.edu>
 wrote:
 
  Subject: Re: New here -
 OpenSAML and conditions/audience restrictions problem
  To: dev at shibboleth.net
  Date: Friday, February
 15, 2019, 3:10 PM
  
  
      
  
      
      On 2/15/19
  2:55 PM, o haya wrote:
  
      
      
        
  
  I am just getting started
 with OpenSAML, and using Java and
  OpenSAML 2.6.6 
      
    
  
  
      
      Don't.  Use
 the latest 3.x  OpenSAML 2.x has
  been End Of Life for
        over 2.5 years at this point. See the
 announcement and
  links
 here:
      https://wiki.shibboleth.net/confluence/display/OpenSAML/Home
  
      
       There's
 absolutely no reason to start a new
  project with 2.x,
        and it is indeed
 a bad idea due to security
  vulnerabilities which
        have been fixed since it went EOL.
  
      
      
  
      
      
        
  
  I have code now that, in
 fact does add the
 
 <Conditions>, but I am ending up with two
 
 <saml:AudienceRestriction> elements. 
      
      
  
      
      Yes, you are adding
 it twice.
      
  
      
      
        
  whereas I think that what
 I want is (i.e., just the one
  saml2:AudienceRestriction with the URI):
  
  <saml2:Conditions
 
 NotOnOrAfter="2019-02-15T19:27:56.620Z"
 
 NotBefore="2019-02-15T19:27:56.603Z">
     
 <saml2:AudienceRestriction>
          <saml2:Audience>https://sandboxdtm01.xxx.dev/fed</saml2:Audience>
     
 </saml2:AudienceRestriction>
 
 </saml2:Conditions>
  
      
      
  
      
      Correct. An empty
 AudienceRestriction would not make
  any sense.
        It might even be
 schema-invalid, I'd have to
  check.
  
      
      
  
      
      
        
  The part of my code that
 is building that is:
 
 
             
 SAMLObjectBuilder
 
 audienceRestrictionConditionBuilder = (SAMLObjectBuilder)
 
 SAMLWriter.getSAMLBuilder().getBuilder(AudienceRestriction.DEFAULT_ELEMENT_NAME);
             
 Condition condition = (Condition)
 
 audienceRestrictionConditionBuilder.buildObject();
      
      
  
      
      Here you are
 building the empty one ...
      
  
      
      
        
  
             
 SAMLObjectBuilder conditionsBuilder =
  (SAMLObjectBuilder)
 
 SAMLWriter.getSAMLBuilder().getBuilder(Conditions.DEFAULT_ELEMENT_NAME);
             
 Conditions conditions = (Conditions)
 
 conditionsBuilder.buildObject();
             
 conditions.getConditions().add(condition);
      
      
  
      
      ... and here you
 are adding the empty one to the
  Conditions.  You
        don't need to do this, or the
 above.
      
  
      
      
        
              //
 Create the audience restriction
              AudienceRestriction
 audienceRestriction =
 
 (AudienceRestriction)
 
 audienceRestrictionnBuilder.buildObject();
  
              // add
 in the audience
    
         
 audienceRestriction.getAudiences().add(audience);
         
     
 conditions.getAudienceRestrictions().add(audienceRestriction);
      
      
  
      
      And here you are
 adding the non-empty one, which is
  the code to
        keep.
      
  
      
      
  
      
      
        
  
  It seems like just
 instantiating the builder is making the
  empty
 saml2:AudienceRestriction, but I don't know how to
  make an "empty"
 builder?
      
      
  
      
      No, that's not
 correct. Instantiating a builder
  does not make
        anything (other than the builder of
 course).  Calling
  one
 of the
       
 build(...) methods is what makes the SAMLObject.  So
  there's no
        such thing as an
 "empty" builder.
  
      
      
  
    -- 
  To unsubscribe from this
 list send an email to
 
 dev-unsubscribe at shibboleth.net
  -----Inline Attachment
 Follows-----
  
  
             
         


More information about the dev mailing list