public String getName() { return nameId.getValue(); } }
/** * Return the NameIDType for the issuer * @param issuerID * @return */ public static NameIDType getIssuer(String issuerID) { NameIDType nid = new NameIDType(); nid.setValue(issuerID); return nid; } }
/** * <p> * Creates a {@code NameIDType} instance with the specified values. * </p> * * @param format a {@code String} representing the name format. * @param qualifier a {@code String} representing the name qualifier. * @param value a {@code String} representing the name value. * @return the constructed {@code NameIDType} instance. */ public static NameIDType createNameID(String format, String qualifier, String value) { NameIDType nameID = new NameIDType(); if (format != null) nameID.setFormat(URI.create(format)); nameID.setNameQualifier(qualifier); nameID.setValue(value); return nameID; }
/** * <p>This method populate the request and session with a logout requests to start a global logout from the IdP.</p> * @param request * @param userPrincipal */ private HttpServletRequestWrapper prepareLocalGlobalLogoutRequest(HttpServletRequest request, Principal userPrincipal) { try { SAML2Request saml2Request = new SAML2Request(); LogoutRequestType lort = saml2Request.createLogoutRequest(getIdentityURL()); NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); nameID.setFormat(URI.create(JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get())); lort.setNameID(nameID); lort.setDestination(URI.create(getIdentityURL())); byte[] responseBytes = DocumentUtil.getDocumentAsString(saml2Request.convert(lort)).getBytes("UTF-8"); final String samlRequest = RedirectBindingUtil.deflateBase64Encode(responseBytes); return new HttpServletRequestWrapper(request) { @Override public String getParameter(String name) { if (SAML_REQUEST_KEY.equals(name)) { return samlRequest; } return super.getParameter(name); } }; } catch (Exception e) { throw new RuntimeException("Could not perform IdP Initiated Single Logout.", e); } }
private LogoutRequestType createLogoutRequest(SAML2HandlerRequest request, String participant) throws ConfigurationException, ProcessingException { HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest httpServletRequest = httpContext.getRequest(); LogoutRequestType lort = new SAML2Request().createLogoutRequest(request.getIssuer().getValue()); Principal userPrincipal = httpServletRequest.getUserPrincipal(); if (userPrincipal == null) { throw logger.samlHandlerPrincipalNotFoundError(); } NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); //Deal with NameID Format String nameIDFormat = (String) handlerConfig.getParameter(GeneralConstants.NAMEID_FORMAT); if (StringUtil.isNullOrEmpty(nameIDFormat)) { nameIDFormat = JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get(); } nameID.setFormat(URI.create(nameIDFormat)); lort.setNameID(nameID); long assertionValidity = PicketLinkCoreSTS.instance().getConfiguration().getIssuedTokenTimeout(); lort.setNotOnOrAfter(XMLTimeUtil.add(lort.getIssueInstant(), assertionValidity)); lort.setDestination(URI.create(participant)); return lort; }
/** * Parse a {@code NameIDType} * * @param xmlEventReader * @return * @throws ParsingException */ public static NameIDType parseNameIDType(XMLEventReader xmlEventReader) throws ParsingException { StartElement nameIDElement = StaxParserUtil.getNextStartElement(xmlEventReader); NameIDType nameID = new NameIDType(); Attribute nameQualifier = nameIDElement.getAttributeByName(new QName(JBossSAMLConstants.NAME_QUALIFIER.get())); if (nameQualifier != null) { nameID.setNameQualifier(StaxParserUtil.getAttributeValue(nameQualifier)); } Attribute format = nameIDElement.getAttributeByName(new QName(JBossSAMLConstants.FORMAT.get())); if (format != null) { nameID.setFormat(URI.create(StaxParserUtil.getAttributeValue(format))); } Attribute spProvidedID = nameIDElement.getAttributeByName(new QName(JBossSAMLConstants.SP_PROVIDED_ID.get())); if (spProvidedID != null) { nameID.setSPProvidedID(StaxParserUtil.getAttributeValue(spProvidedID)); } Attribute spNameQualifier = nameIDElement.getAttributeByName(new QName(JBossSAMLConstants.SP_NAME_QUALIFIER.get())); if (spNameQualifier != null) { nameID.setSPNameQualifier(StaxParserUtil.getAttributeValue(spNameQualifier)); } String nameIDValue = StaxParserUtil.getElementText(xmlEventReader); nameID.setValue(nameIDValue); return nameID; }
URI format = nameIDType.getFormat(); if (format != null) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.FORMAT.get(), format.toASCIIString()); String spProvidedID = nameIDType.getSPProvidedID(); if (StringUtil.isNotNull(spProvidedID)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.SP_PROVIDED_ID.get(), spProvidedID); String spNameQualifier = nameIDType.getSPNameQualifier(); if (StringUtil.isNotNull(spNameQualifier)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.SP_NAME_QUALIFIER.get(), spNameQualifier); String nameQualifier = nameIDType.getNameQualifier(); if (StringUtil.isNotNull(nameQualifier)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.NAME_QUALIFIER.get(), nameQualifier); String value = nameIDType.getValue(); if (StringUtil.isNotNull(value)) { StaxUtil.writeCharacters(writer, value);
LogoutRequestType lot = samlRequest.createLogoutRequest(request.getIssuer().getValue()); NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); lot.setNameID(nameID);
public LogoutRequestType createLogoutRequest(SeamSamlPrincipal principal) throws ConfigurationException { ObjectFactory objectFactory = new ObjectFactory(); org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory assertionObjectFactory = new org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory(); LogoutRequestType logoutRequest = objectFactory.createLogoutRequestType(); logoutRequest.setID(generateId()); logoutRequest.setIssueInstant(generateIssueInstant()); NameIDType issuer = assertionObjectFactory.createNameIDType(); issuer.setValue(serviceProvider.getSamlConfiguration().getEntityId()); logoutRequest.setIssuer(issuer); NameIDType nameID = JBossSAMLBaseFactory.createNameID(); nameID.setValue(principal.getNameId().getValue()); logoutRequest.setNameID(nameID); logoutRequest.setVersion(JBossSAMLConstants.VERSION_2_0.get()); logoutRequest.getSessionIndex().add(principal.getSessionIndex()); return logoutRequest; }
public AuthnRequestType createAuthnRequest() { ObjectFactory objectFactory = new ObjectFactory(); org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory assertionObjectFactory = new org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory(); AuthnRequestType authnRequest = objectFactory.createAuthnRequestType(); authnRequest.setID(generateId()); authnRequest.setIssueInstant(generateIssueInstant()); NameIDType issuer = assertionObjectFactory.createNameIDType(); issuer.setValue(serviceProvider.getSamlConfiguration().getEntityId()); authnRequest.setIssuer(issuer); authnRequest.setVersion(JBossSAMLConstants.VERSION_2_0.get()); // Fill in the optional fields that indicate where and how the response should be delivered. authnRequest.setAssertionConsumerServiceURL(serviceProvider .getServiceURL(ExternalAuthenticationService.SAML_ASSERTION_CONSUMER_SERVICE)); authnRequest.setProtocolBinding("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"); return authnRequest; }
/** * <p>This method populate the request and session with a logout requests to start a global logout from the IdP.</p> * @param request * @param userPrincipal */ private HttpServletRequestWrapper prepareLocalGlobalLogoutRequest(HttpServletRequest request, Principal userPrincipal) { try { SAML2Request saml2Request = new SAML2Request(); LogoutRequestType lort = saml2Request.createLogoutRequest(getIdentityURL()); NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); nameID.setFormat(URI.create(JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get())); lort.setNameID(nameID); lort.setDestination(URI.create(getIdentityURL())); byte[] responseBytes = DocumentUtil.getDocumentAsString(saml2Request.convert(lort)).getBytes("UTF-8"); final String samlRequest = RedirectBindingUtil.deflateBase64Encode(responseBytes); return new HttpServletRequestWrapper(request) { @Override public String getParameter(String name) { if (SAML_REQUEST_KEY.equals(name)) { return samlRequest; } return super.getParameter(name); } }; } catch (Exception e) { throw new RuntimeException("Could not perform IdP Initiated Single Logout.", e); } }
private LogoutRequestType createLogoutRequest(SAML2HandlerRequest request, String participant) throws ConfigurationException, ProcessingException { HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest httpServletRequest = httpContext.getRequest(); LogoutRequestType lort = new SAML2Request().createLogoutRequest(request.getIssuer().getValue()); Principal userPrincipal = httpServletRequest.getUserPrincipal(); if (userPrincipal == null) { throw logger.samlHandlerPrincipalNotFoundError(); } NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); //Deal with NameID Format String nameIDFormat = (String) handlerConfig.getParameter(GeneralConstants.NAMEID_FORMAT); if (StringUtil.isNullOrEmpty(nameIDFormat)) { nameIDFormat = JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get(); } nameID.setFormat(URI.create(nameIDFormat)); lort.setNameID(nameID); long assertionValidity = PicketLinkCoreSTS.instance().getConfiguration().getIssuedTokenTimeout(); lort.setNotOnOrAfter(XMLTimeUtil.add(lort.getIssueInstant(), assertionValidity)); lort.setDestination(URI.create(participant)); return lort; }
NameIDType nameID = new NameIDType(); nameID.setNameQualifier(StaxParserUtil.getAttributeValue(nameQualifier)); nameID.setFormat(URI.create(StaxParserUtil.getAttributeValue(format))); nameID.setSPProvidedID(StaxParserUtil.getAttributeValue(spProvidedID)); nameID.setSPNameQualifier(StaxParserUtil.getAttributeValue(spNameQualifier)); nameID.setValue(nameIDValue);
URI format = nameIDType.getFormat(); if (format != null) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.FORMAT.get(), format.toASCIIString()); String spProvidedID = nameIDType.getSPProvidedID(); if (StringUtil.isNotNull(spProvidedID)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.SP_PROVIDED_ID.get(), spProvidedID); String spNameQualifier = nameIDType.getSPNameQualifier(); if (StringUtil.isNotNull(spNameQualifier)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.SP_NAME_QUALIFIER.get(), spNameQualifier); String nameQualifier = nameIDType.getNameQualifier(); if (StringUtil.isNotNull(nameQualifier)) { StaxUtil.writeAttribute(writer, JBossSAMLConstants.NAME_QUALIFIER.get(), nameQualifier); String value = nameIDType.getValue(); if (StringUtil.isNotNull(value)) { StaxUtil.writeCharacters(writer, value);
/** * <p>This method populate the request and session with a logout requests to start a global logout from the IdP.</p> * * @param request * @param userPrincipal */ private void prepareLocalGlobalLogoutRequest(Request request, Principal userPrincipal) { try { SAML2Request saml2Request = new SAML2Request(); LogoutRequestType lort = saml2Request.createLogoutRequest(getIdentityURL()); NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); nameID.setFormat(URI.create(JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get())); lort.setNameID(nameID); lort.setDestination(URI.create(getIdentityURL())); byte[] responseBytes = DocumentUtil.getDocumentAsString(saml2Request.convert(lort)).getBytes("UTF-8"); String samlRequest = RedirectBindingUtil.deflateBase64Encode(responseBytes); Session session = request.getSessionInternal(); session.setNote(SAML_REQUEST_KEY, samlRequest); } catch (Exception e) { throw new RuntimeException("Could not perform IdP Initiated Single Logout.", e); } }
LogoutRequestType lot = samlRequest.createLogoutRequest(request.getIssuer().getValue()); NameIDType nameID = new NameIDType(); nameID.setValue(userPrincipal.getName()); nameIDFormat = JBossSAMLURIConstants.NAMEID_FORMAT_PERSISTENT.get(); nameID.setFormat(URI.create(nameIDFormat)); lot.setNameID(nameID);
/** * Return the NameIDType for the issuer * @param issuerID * @return */ public static NameIDType getIssuer(String issuerID) { NameIDType nid = new NameIDType(); nid.setValue(issuerID); return nid; } }
NameIDType nameID = new NameIDType(); nameID.setNameQualifier(StaxParserUtil.getAttributeValue(nameQualifier)); nameID.setFormat(URI.create(StaxParserUtil.getAttributeValue(format))); nameID.setSPProvidedID(StaxParserUtil.getAttributeValue(spProvidedID)); nameID.setSPNameQualifier(StaxParserUtil.getAttributeValue(spNameQualifier)); nameID.setValue(nameIDValue);
/** * <p> * Creates a {@code NameIDType} instance with the specified values. * </p> * * @param format a {@code String} representing the name format. * @param qualifier a {@code String} representing the name qualifier. * @param value a {@code String} representing the name value. * @return the constructed {@code NameIDType} instance. */ public static NameIDType createNameID(String format, String qualifier, String value) { NameIDType nameID = new NameIDType(); if (format != null) nameID.setFormat(URI.create(format)); nameID.setNameQualifier(qualifier); nameID.setValue(value); return nameID; }
public URI getSenderURL() { URI assertionConsumerServiceURL = getAssertionConsumerServiceURL(); if (assertionConsumerServiceURL != null) { return assertionConsumerServiceURL; } NameIDType issuer = getIssuer(); try { if (issuer != null) { return URI.create(issuer.getValue()); } } catch (Exception e) { throw new RuntimeException("Could not resolve sender URL using the Issuer value [" + issuer.getValue() + "]." , e); } throw new RuntimeException("Could not resolve sender URL. AuthnRequest must have a value for AssertionConsumerServiceURL or Issuer."); }