Java Code Examples for org.opensaml.saml.saml2.core.AttributeStatement#getAttributes()
The following examples show how to use
org.opensaml.saml.saml2.core.AttributeStatement#getAttributes() .
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: SamlClient.java From saml-client with MIT License | 6 votes |
/** * Gets attributes from the IDP Response * * @param response the response * @return the attributes */ public static Map<String, String> getAttributes(SamlResponse response) { HashMap<String, String> map = new HashMap<>(); if (response == null) { return map; } List<AttributeStatement> attributeStatements = response.getAssertion().getAttributeStatements(); if (attributeStatements == null) { return map; } for (AttributeStatement statement : attributeStatements) { for (Attribute attribute : statement.getAttributes()) { XMLObject xmlObject = attribute.getAttributeValues().get(0); if (xmlObject instanceof XSStringImpl) { map.put(attribute.getName(), ((XSStringImpl) xmlObject).getValue()); } else { map.put(attribute.getName(), ((XSAnyImpl) xmlObject).getTextContent()); } } } return map; }
Example 2
Source File: AttributeTranslator.java From verify-service-provider with MIT License | 5 votes |
public static Attributes translateAttributes(AttributeStatement attributeStatement) { List<Attribute> statementAttributes = attributeStatement.getAttributes(); VerifiableAttribute<String> verifiableFirstName = getVerifiableStringAttribute(statementAttributes, "firstname", "firstname_verified"); VerifiableAttribute<String> verifiableMiddleName = getVerifiableStringAttribute(statementAttributes, "middlename", "middlename_verified"); VerifiableAttribute<String> verifiableSurname = getVerifiableStringAttribute(statementAttributes, "surname", "surname_verified"); VerifiableAttribute<LocalDate> verifiableDob = getVerifiableDateAttribute(statementAttributes, "dateofbirth", "dateofbirth_verified"); VerifiableAttribute<Address> verifiableAddress = getVerifiableAddressAttribute(statementAttributes, "currentaddress", "currentaddress_verified"); Optional<List<VerifiableAttribute<Address>>> addressHistory = getVerifiableAddressListAttribute(statementAttributes, "addresshistory"); Optional<String> cycle3 = getStringAttributeValue(statementAttributes, "cycle_3"); return new Attributes(verifiableFirstName, verifiableMiddleName, verifiableSurname, verifiableDob, verifiableAddress, addressHistory.orElse(null), cycle3.orElse(null)); }
Example 3
Source File: Util.java From carbon-apimgt with Apache License 2.0 | 5 votes |
/** * Get the username from the SAML2 Assertion * * @param assertion SAML2 assertion * @return username */ public static String getUsernameFromAssertion(Assertion assertion, String usernameAttribute) { String username = null; if (!StringUtils.isEmpty(usernameAttribute)) { // There can be multiple AttributeStatements in Assertion List<AttributeStatement> attributeStatements = assertion.getAttributeStatements(); if (attributeStatements != null) { for (AttributeStatement attributeStatement : attributeStatements) { // There can be multiple Attributes in an attributeStatement List<Attribute> attributes = attributeStatement.getAttributes(); if (attributes != null) { for (Attribute attribute : attributes) { String attributeName = attribute.getDOM().getAttribute(SSOConstants.SAML_NAME_ATTRIBUTE); if (attributeName.equals(usernameAttribute)) { List<XMLObject> attributeValues = attribute.getAttributeValues(); // There can be multiple attribute values in an attribute, but get the first one username = attributeValues.get(0).getDOM().getTextContent(); if (log.isDebugEnabled()) { log.debug("Name of authenticated user from SAML response : " + username); } } } } } } } else { Subject subject = assertion.getSubject(); if (subject != null) { if (subject.getNameID() != null) { username = subject.getNameID().getValue(); if (log.isDebugEnabled()) { log.debug("Name of authenticated user from SAML response : " + username); } } } } return username; }
Example 4
Source File: SAMLGroupIDExtractorImpl.java From carbon-apimgt with Apache License 2.0 | 5 votes |
/** * Get the organization list from the SAML2 Assertion * * @param assertions SAML2 assertions returned in SAML response * @return Organization list from the assertion */ private String getOrganizationFromSamlAssertion(List<Assertion> assertions) { List<String> attributeValueArray = new ArrayList<>(); String organizationAttributeName = getOrganizationClaim(); for (Assertion assertion : assertions) { List<AttributeStatement> attributeStatementList = assertion.getAttributeStatements(); if (attributeStatementList != null) { for (AttributeStatement statement : attributeStatementList) { List<Attribute> attributesList = statement.getAttributes(); for (Attribute attribute : attributesList) { String attributeName = attribute.getName(); if (organizationAttributeName.equals(attributeName)) { List<XMLObject> attributeValues = attribute.getAttributeValues(); if (attributeValues != null) { for (XMLObject attributeValue : attributeValues) { attributeValueArray.add(getAttributeValue(attributeValue)); } } } } } } } if (log.isDebugEnabled()) { log.debug("Organization list found in assertion: " + attributeValueArray); } return String.join(",", attributeValueArray); }
Example 5
Source File: ActAsValidator.java From cxf with Apache License 2.0 | 5 votes |
@Override public Credential validate(Credential credential, RequestData data) throws WSSecurityException { Credential validatedCredential = super.validate(credential, data); SamlAssertionWrapper assertion = validatedCredential.getSamlAssertion(); Assertion saml2Assertion = assertion.getSaml2(); if (saml2Assertion == null) { throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } // The technical user should be in the Subject Subject subject = saml2Assertion.getSubject(); if (subject == null || subject.getNameID() == null || !subject.getNameID().getValue().contains("www.client.com")) { throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } List<AttributeStatement> attributeStatements = saml2Assertion.getAttributeStatements(); if (attributeStatements == null || attributeStatements.isEmpty()) { throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); } for (AttributeStatement statement : attributeStatements) { List<Attribute> attributes = statement.getAttributes(); for (Attribute attribute : attributes) { if (!"CustomActAs".equals(attribute.getName()) && !"ActAs".equals(attribute.getName())) { continue; } for (XMLObject attributeValue : attribute.getAttributeValues()) { Element attributeValueElement = attributeValue.getDOM(); String text = attributeValueElement.getTextContent(); if (text.contains("alice") || text.contains("bob")) { return validatedCredential; } } } } throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); }
Example 6
Source File: SAML2CallbackHandler.java From cxf-fediz with Apache License 2.0 | 5 votes |
private void createAndSetStatement(SAMLCallback callback) { AuthenticationStatementBean authBean = new AuthenticationStatementBean(); authBean.setAuthenticationMethod("Password"); callback.setAuthenticationStatementData(Collections.singletonList(authBean)); if (attributeStatements != null && !attributeStatements.isEmpty()) { List<AttributeStatementBean> attrStatementBeans = new ArrayList<>(); for (AttributeStatement attrStatement : attributeStatements) { AttributeStatementBean attrStatementBean = new AttributeStatementBean(); List<AttributeBean> attrBeans = new ArrayList<>(); for (Attribute attribute : attrStatement.getAttributes()) { AttributeBean attributeBean = new AttributeBean(); attributeBean.setQualifiedName(attribute.getName()); attributeBean.setNameFormat(attribute.getNameFormat()); List<Object> attributeValues = new ArrayList<>(); for (XMLObject attrVal : attribute.getAttributeValues()) { attributeValues.add(attrVal.getDOM().getTextContent()); } attributeBean.setAttributeValues(attributeValues); attrBeans.add(attributeBean); } attrStatementBean.setSamlAttributes(attrBeans); attrStatementBeans.add(attrStatementBean); } callback.setAttributeStatementData(attrStatementBeans); } }