Java Code Examples for org.apache.wss4j.common.saml.bean.ConditionsBean#setNotAfter()
The following examples show how to use
org.apache.wss4j.common.saml.bean.ConditionsBean#setNotAfter() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SAMLResponseValidatorTest.java From cxf with Apache License 2.0 | 5 votes |
@org.junit.Test public void testResponseInvalidVersion() throws Exception { SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo("12345"); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org"); // Create a AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/issuer"); callbackHandler.setConfirmationMethod(SAML2Constants.CONF_SENDER_VOUCHES); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); callbackHandler.setConditions(conditions); Response response = createResponse(subjectConfirmationData, callbackHandler); response.setVersion(SAMLVersion.VERSION_10); // Validate the Response SAMLProtocolResponseValidator protocolValidator = new SAMLProtocolResponseValidator(); try { protocolValidator.validateSamlResponse(response, null, null); fail("Expected failure on bad response"); } catch (WSSecurityException ex) { // expected } }
Example 2
Source File: SAMLResponseValidatorTest.java From cxf with Apache License 2.0 | 5 votes |
@org.junit.Test public void testAssertionBadSubjectConfirmationMethod() throws Exception { SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo("12345"); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org"); // Create a AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/issuer"); callbackHandler.setConfirmationMethod("xyz"); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); callbackHandler.setConditions(conditions); Response response = createResponse(subjectConfirmationData, callbackHandler); // Validate the Response SAMLProtocolResponseValidator protocolValidator = new SAMLProtocolResponseValidator(); try { protocolValidator.validateSamlResponse(response, null, null); fail("Expected failure on bad response"); } catch (WSSecurityException ex) { // expected } }
Example 3
Source File: SAML2ITCase.java From syncope with Apache License 2.0 | 4 votes |
private static org.opensaml.saml.saml2.core.Response createResponse( final String inResponseTo, final boolean signAssertion, final String subjectConfMethod, final String issuer) throws Exception { Status status = SAML2PResponseComponentBuilder.createStatus( SAMLProtocolResponseValidator.SAML2_STATUSCODE_SUCCESS, null); org.opensaml.saml.saml2.core.Response response = SAML2PResponseComponentBuilder.createSAMLResponse( inResponseTo, issuer, status); response.setDestination("http://recipient.apache.org"); // Create an AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setIssuer(issuer); callbackHandler.setSubjectName("puccini"); callbackHandler.setSubjectConfirmationMethod(subjectConfMethod); SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo(inResponseTo); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org/saml2sp/assertion-consumer"); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(List.of("http://recipient.apache.org/")); conditions.setAudienceRestrictions(List.of(audienceRestriction)); callbackHandler.setConditions(conditions); SAMLCallback samlCallback = new SAMLCallback(); SAMLUtil.doSAMLCallback(callbackHandler, samlCallback); SamlAssertionWrapper assertion = new SamlAssertionWrapper(samlCallback); if (signAssertion) { Crypto issuerCrypto = new Merlin(); KeyStore keyStore = KeyStore.getInstance("JKS"); InputStream input = Files.newInputStream(keystorePath); keyStore.load(input, "security".toCharArray()); ((Merlin) issuerCrypto).setKeyStore(keyStore); assertion.signAssertion("subject", "security", issuerCrypto, false); } response.getAssertions().add(assertion.getSaml2()); return response; }
Example 4
Source File: DefaultConditionsProvider.java From cxf with Apache License 2.0 | 4 votes |
/** * Get a ConditionsBean object. */ @Override public ConditionsBean getConditions(TokenProviderParameters providerParameters) { ConditionsBean conditions = new ConditionsBean(); Lifetime tokenLifetime = providerParameters.getTokenRequirements().getLifetime(); if (lifetime > 0) { if (acceptClientLifetime && tokenLifetime != null && (tokenLifetime.getCreated() != null || tokenLifetime.getExpires() != null)) { Instant creationTime = parsedInstantOrDefault(tokenLifetime.getCreated(), Instant.now()); Instant expirationTime = parsedInstantOrDefault(tokenLifetime.getExpires(), creationTime.plusSeconds(lifetime)); // Check to see if the created time is in the future Instant validCreation = Instant.now(); if (futureTimeToLive > 0) { validCreation = validCreation.plusSeconds(futureTimeToLive); } if (creationTime.isAfter(validCreation)) { LOG.fine("The Created Time is too far in the future"); throw new STSException( "The Created Time is too far in the future", STSException.INVALID_TIME ); } long requestedLifetime = Duration.between(creationTime, expirationTime).getSeconds(); if (requestedLifetime > getMaxLifetime()) { StringBuilder sb = new StringBuilder(); sb.append("Requested lifetime [").append(requestedLifetime); sb.append(" sec] exceed configured maximum lifetime [").append(getMaxLifetime()); sb.append(" sec]"); LOG.warning(sb.toString()); if (isFailLifetimeExceedance()) { throw new STSException("Requested lifetime exceeds maximum lifetime", STSException.INVALID_TIME); } expirationTime = creationTime.plusSeconds(getMaxLifetime()); } conditions.setNotAfter(expirationTime); conditions.setNotBefore(creationTime); } else { conditions.setTokenPeriodSeconds(lifetime); } } else { conditions.setTokenPeriodMinutes(5); } List<AudienceRestrictionBean> audienceRestrictions = createAudienceRestrictions(providerParameters); if (audienceRestrictions != null && !audienceRestrictions.isEmpty()) { conditions.setAudienceRestrictions(audienceRestrictions); } return conditions; }
Example 5
Source File: SAMLSSOResponseValidatorTest.java From cxf with Apache License 2.0 | 4 votes |
@org.junit.Test public void testSignedResponseInvalidDestination() throws Exception { Document doc = DOMUtils.createDocument(); Status status = SAML2PResponseComponentBuilder.createStatus( SAMLProtocolResponseValidator.SAML2_STATUSCODE_SUCCESS, null ); Response response = SAML2PResponseComponentBuilder.createSAMLResponse( "http://cxf.apache.org/saml", "http://cxf.apache.org/issuer", status ); // Create an AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/issuer"); callbackHandler.setConfirmationMethod(SAML2Constants.CONF_BEARER); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); callbackHandler.setConditions(conditions); SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo("12345"); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org"); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); SAMLCallback samlCallback = new SAMLCallback(); SAMLUtil.doSAMLCallback(callbackHandler, samlCallback); SamlAssertionWrapper assertion = new SamlAssertionWrapper(samlCallback); response.getAssertions().add(assertion.getSaml2()); response.setDestination("xyz"); Crypto issuerCrypto = new Merlin(); KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); ClassLoader loader = Loader.getClassLoader(SAMLResponseValidatorTest.class); InputStream input = Merlin.loadInputStream(loader, "alice.jks"); keyStore.load(input, "password".toCharArray()); ((Merlin)issuerCrypto).setKeyStore(keyStore); signResponse(response, "alice", "password", issuerCrypto, true); Element policyElement = OpenSAMLUtil.toDom(response, doc); doc.appendChild(policyElement); assertNotNull(policyElement); Response marshalledResponse = (Response)OpenSAMLUtil.fromDom(policyElement); // Validate the Response SAMLSSOResponseValidator validator = new SAMLSSOResponseValidator(); validator.setIssuerIDP("http://cxf.apache.org/issuer"); validator.setAssertionConsumerURL("http://recipient.apache.org"); validator.setClientAddress("http://apache.org"); validator.setRequestId("12345"); validator.setSpIdentifier("http://service.apache.org"); try { validator.validateSamlResponse(marshalledResponse, false); fail("Expected failure on bad response"); } catch (WSSecurityException ex) { // expected } }
Example 6
Source File: SAMLSSOResponseValidatorTest.java From cxf with Apache License 2.0 | 4 votes |
@org.junit.Test public void testAssertionBadIssuer() throws Exception { SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo("12345"); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org"); // Create a AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/bad-issuer"); callbackHandler.setConfirmationMethod(SAML2Constants.CONF_BEARER); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); callbackHandler.setConditions(conditions); Response response = createResponse(subjectConfirmationData, callbackHandler); // Validate the Response SAMLSSOResponseValidator validator = new SAMLSSOResponseValidator(); validator.setEnforceAssertionsSigned(false); validator.setIssuerIDP("http://cxf.apache.org/issuer"); validator.setAssertionConsumerURL("http://recipient.apache.org"); validator.setClientAddress("http://apache.org"); validator.setRequestId("12345"); validator.setSpIdentifier("http://service.apache.org"); try { validator.validateSamlResponse(response, false); fail("Expected failure on bad response"); } catch (WSSecurityException ex) { // expected } }
Example 7
Source File: SAMLSSOResponseValidatorTest.java From cxf with Apache License 2.0 | 4 votes |
private Response createResponse( SubjectConfirmationDataBean subjectConfirmationData, List<AudienceRestrictionBean> audienceRestrictions, String authnClassRef ) throws Exception { Document doc = DOMUtils.createDocument(); Status status = SAML2PResponseComponentBuilder.createStatus( SAMLProtocolResponseValidator.SAML2_STATUSCODE_SUCCESS, null ); Response response = SAML2PResponseComponentBuilder.createSAMLResponse( "http://cxf.apache.org/saml", "http://cxf.apache.org/issuer", status ); // Create an AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/issuer"); callbackHandler.setConfirmationMethod(SAML2Constants.CONF_BEARER); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); if (audienceRestrictions == null) { AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); } else { conditions.setAudienceRestrictions(audienceRestrictions); } callbackHandler.setConditions(conditions); SAMLCallback samlCallback = new SAMLCallback(); SAMLUtil.doSAMLCallback(callbackHandler, samlCallback); SamlAssertionWrapper assertion = new SamlAssertionWrapper(samlCallback); response.getAssertions().add(assertion.getSaml2()); if (authnClassRef != null) { AuthnStatement authnStatement = response.getAssertions().get(0).getAuthnStatements().get(0); authnStatement.getAuthnContext().setAuthnContextClassRef( SAML2PResponseComponentBuilder.createAuthnContextClassRef(authnClassRef)); } Element policyElement = OpenSAMLUtil.toDom(response, doc); doc.appendChild(policyElement); assertNotNull(policyElement); return (Response)OpenSAMLUtil.fromDom(policyElement); }
Example 8
Source File: CombinedValidatorTest.java From cxf with Apache License 2.0 | 4 votes |
private Response createResponse(Document doc) throws Exception { Status status = SAML2PResponseComponentBuilder.createStatus( SAMLProtocolResponseValidator.SAML2_STATUSCODE_SUCCESS, null ); Response response = SAML2PResponseComponentBuilder.createSAMLResponse( "http://cxf.apache.org/saml", "http://cxf.apache.org/issuer", status ); response.setDestination("http://recipient.apache.org"); // Create an AuthenticationAssertion SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler(); callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN); callbackHandler.setIssuer("http://cxf.apache.org/issuer"); callbackHandler.setConfirmationMethod(SAML2Constants.CONF_BEARER); callbackHandler.setSubjectName("alice"); SubjectConfirmationDataBean subjectConfirmationData = new SubjectConfirmationDataBean(); subjectConfirmationData.setAddress("http://apache.org"); subjectConfirmationData.setInResponseTo("12345"); subjectConfirmationData.setNotAfter(new DateTime().plusMinutes(5)); subjectConfirmationData.setRecipient("http://recipient.apache.org"); callbackHandler.setSubjectConfirmationData(subjectConfirmationData); ConditionsBean conditions = new ConditionsBean(); conditions.setNotBefore(new DateTime()); conditions.setNotAfter(new DateTime().plusMinutes(5)); AudienceRestrictionBean audienceRestriction = new AudienceRestrictionBean(); audienceRestriction.setAudienceURIs(Collections.singletonList("http://service.apache.org")); conditions.setAudienceRestrictions(Collections.singletonList(audienceRestriction)); callbackHandler.setConditions(conditions); SAMLCallback samlCallback = new SAMLCallback(); SAMLUtil.doSAMLCallback(callbackHandler, samlCallback); SamlAssertionWrapper assertion = new SamlAssertionWrapper(samlCallback); Crypto issuerCrypto = new Merlin(); KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); ClassLoader loader = Loader.getClassLoader(CombinedValidatorTest.class); InputStream input = Merlin.loadInputStream(loader, "alice.jks"); keyStore.load(input, "password".toCharArray()); ((Merlin)issuerCrypto).setKeyStore(keyStore); assertion.signAssertion("alice", "password", issuerCrypto, false); response.getAssertions().add(assertion.getSaml2()); return response; }
Example 9
Source File: AbstractTrustedIdpOAuth2ProtocolHandler.java From cxf-fediz with Apache License 2.0 | 4 votes |
protected SamlAssertionWrapper createSamlAssertion(Idp idp, TrustedIdp trustedIdp, JsonMapObject claims, String subjectName, Instant notBefore, Instant expires) throws Exception { SamlCallbackHandler callbackHandler = new SamlCallbackHandler(); String issuer = idp.getServiceDisplayName(); if (issuer == null) { issuer = idp.getRealm(); } if (issuer != null) { callbackHandler.setIssuer(issuer); } // Subject SubjectBean subjectBean = new SubjectBean(subjectName, SAML2Constants.NAMEID_FORMAT_UNSPECIFIED, SAML2Constants.CONF_BEARER); callbackHandler.setSubjectBean(subjectBean); // Conditions ConditionsBean conditionsBean = new ConditionsBean(); conditionsBean.setNotAfter(new DateTime(Date.from(expires))); if (notBefore != null) { DateTime notBeforeDT = new DateTime(Date.from(notBefore)); conditionsBean.setNotBefore(notBeforeDT); } else { conditionsBean.setNotBefore(new DateTime()); } callbackHandler.setConditionsBean(conditionsBean); // Claims String claimsHandler = getProperty(trustedIdp, CLAIMS_HANDLER); if (claimsHandler != null) { ClaimsHandler claimsHandlerImpl = (ClaimsHandler)Loader.loadClass(claimsHandler).newInstance(); AttributeStatementBean attrStatementBean = claimsHandlerImpl.handleClaims(claims); callbackHandler.setAttrBean(attrStatementBean); } SAMLCallback samlCallback = new SAMLCallback(); SAMLUtil.doSAMLCallback(callbackHandler, samlCallback); SamlAssertionWrapper assertion = new SamlAssertionWrapper(samlCallback); Crypto crypto = CertsUtils.getCryptoFromCertificate(idp.getCertificate()); assertion.signAssertion(crypto.getDefaultX509Identifier(), idp.getCertificatePassword(), crypto, false); return assertion; }