requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef);
/** {@inheritDoc} */ protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject) throws UnmarshallingException { RequestedAuthnContext rac = (RequestedAuthnContext) parentSAMLObject; if (childSAMLObject instanceof AuthnContextClassRef) { rac.getAuthnContextClassRefs().add((AuthnContextClassRef) childSAMLObject); } else if (childSAMLObject instanceof AuthnContextDeclRef) { rac.getAuthnContextDeclRefs().add((AuthnContextDeclRef) childSAMLObject); } else { super.processChildElement(parentSAMLObject, childSAMLObject); } } }
/** {@inheritDoc} */ protected void marshallAttributes(XMLObject samlObject, Element domElement) throws MarshallingException { RequestedAuthnContext rac = (RequestedAuthnContext) samlObject; if (rac.getComparison() != null) { domElement.setAttributeNS(null, RequestedAuthnContext.COMPARISON_ATTRIB_NAME, rac.getComparison() .toString()); } } }
requestedAuthnContextBuilder = new RequestedAuthnContextBuilder(); requestedAuthnContext = requestedAuthnContextBuilder.buildObject(); requestedAuthnContext.setDOM(incomingRequestedAuthnContext.getDOM()); if (AuthnContextComparisonTypeEnumeration.EXACT.toString().equalsIgnoreCase( authnContextComparison)) { requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); } else if (AuthnContextComparisonTypeEnumeration.MINIMUM.toString().equalsIgnoreCase( authnContextComparison)) { requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM); } else if (AuthnContextComparisonTypeEnumeration.MAXIMUM.toString().equalsIgnoreCase( authnContextComparison)) { requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.MAXIMUM); } else if (AuthnContextComparisonTypeEnumeration.BETTER.toString().equalsIgnoreCase( authnContextComparison)) { requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.BETTER); requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef);
if (requestedAuthnContext != null && AuthnContextComparisonTypeEnumeration.EXACT.equals(requestedAuthnContext.getComparison())) { if (requestedAuthnContext.getAuthnContextClassRefs() != null) { for (AuthnContextClassRef classRefRequested : requestedAuthnContext.getAuthnContextClassRefs()) { if (classRefRequested.getAuthnContextClassRef().equals(classRef)) { log.debug("AuthContext matched with value {}", classRef); if (requestedAuthnContext.getAuthnContextDeclRefs() != null) { for (AuthnContextDeclRef declRefRequested : requestedAuthnContext.getAuthnContextDeclRefs()) { if (declRefRequested.getAuthnContextDeclRef().equals(declRef)) { log.debug("AuthContext matched with value {}", declRef);
/** {@inheritDoc} */ protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException { RequestedAuthnContext rac = (RequestedAuthnContext) samlObject; if (attribute.getLocalName().equals(RequestedAuthnContext.COMPARISON_ATTRIB_NAME)) { if ("exact".equals(attribute.getValue())) { rac.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); } else if ("minimum".equals(attribute.getValue())) { rac.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM); } else if ("maximum".equals(attribute.getValue())) { rac.setComparison(AuthnContextComparisonTypeEnumeration.MAXIMUM); } else if ("better".equals(attribute.getValue())) { rac.setComparison(AuthnContextComparisonTypeEnumeration.BETTER); } else { throw new UnmarshallingException("Saw an invalid value for Comparison attribute: " + attribute.getValue()); } } else { super.processAttribute(samlObject, attribute); } }
/** * Fills the request with required AuthNContext according to selected options. * * @param request request to fill * @param options options driving generation of the element */ protected void buildAuthnContext(AuthnRequest request, WebSSOProfileOptions options) { Collection<String> contexts = options.getAuthnContexts(); if (contexts != null && contexts.size() > 0) { SAMLObjectBuilder<RequestedAuthnContext> builder = (SAMLObjectBuilder<RequestedAuthnContext>) builderFactory.getBuilder(RequestedAuthnContext.DEFAULT_ELEMENT_NAME); RequestedAuthnContext authnContext = builder.buildObject(); authnContext.setComparison(options.getAuthnContextComparison()); for (String context : contexts) { SAMLObjectBuilder<AuthnContextClassRef> contextRefBuilder = (SAMLObjectBuilder<AuthnContextClassRef>) builderFactory.getBuilder(AuthnContextClassRef.DEFAULT_ELEMENT_NAME); AuthnContextClassRef authnContextClassRef = contextRefBuilder.buildObject(); authnContextClassRef.setAuthnContextClassRef(context); authnContext.getAuthnContextClassRefs().add(authnContextClassRef); } request.setRequestedAuthnContext(authnContext); } }
/** * Validates the presence and combination of child elements. * * @param rac * @throws ValidationException */ protected void validateChildren(RequestedAuthnContext rac) throws ValidationException { int classRefCount = rac.getAuthnContextClassRefs().size(); int declRefCount = rac.getAuthnContextDeclRefs().size(); if (classRefCount == 0 && declRefCount == 0){ throw new ValidationException("At least one of either AuthnContextClassRef or AuthnContextDeclRef is required"); } if (classRefCount > 0 && declRefCount > 0) { throw new ValidationException("AuthnContextClassRef and AuthnContextDeclRef are mutually exclusive"); } }
requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef);
new RequestedAuthnContextBuilder(); RequestedAuthnContext requestedAuthnContext = requestedAuthnContextBuilder.buildObject(); requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef);
new RequestedAuthnContextBuilder(); RequestedAuthnContext requestedAuthnContext = requestedAuthnContextBuilder.buildObject(); requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef);