List of usage examples for org.w3c.dom Element getAttributeNS
public String getAttributeNS(String namespaceURI, String localName) throws DOMException;
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.encoding.SAML1ScopedStringAttributeEncoderBeanDefinitionParser.java
/** {@inheritDoc} */ protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); if (element.hasAttributeNS(null, "scopeType")) { builder.addPropertyValue("scopeType", element.getAttribute("scopeType")); } else {// w w w .ja va 2 s .c o m builder.addPropertyValue("scopeType", "attribute"); } String namespace = "urn:mace:shibboleth:1.0:attributeNamespace:uri"; if (element.hasAttributeNS(null, "namespace")) { namespace = DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null, "namespace")); } builder.addPropertyValue("namespace", namespace); String attributeName = DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null, "name")); if (attributeName == null) { throw new BeanCreationException("SAML 1 attribute encoders must contain a name"); } }
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.encoding.SAML2ScopedStringAttributeEncoderBeanDefinitionParser.java
/** {@inheritDoc} */ protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); if (element.hasAttributeNS(null, "scopeType")) { builder.addPropertyValue("scopeType", element.getAttribute("scopeType")); } else {//from w w w. j ava 2s.co m builder.addPropertyValue("scopeType", "inline"); } String namespace = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"; if (element.hasAttributeNS(null, "nameFormat")) { namespace = DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null, "nameFormat")); } builder.addPropertyValue("nameFormat", namespace); builder.addPropertyValue("friendlyName", element.getAttribute(FRIENDLY_NAME_ATTRIBUTE_NAME)); String attributeName = DatatypeHelper.safeTrimOrNullString(element.getAttributeNS(null, "name")); if (attributeName == null) { throw new BeanCreationException("SAML 2 attribute encoders must contain a name"); } }
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.resolver.dataConnector.RDBMSDataConnectorBeanDefinitionParser.java
/** * Processes query handling related configuration options. * // www.j a v a 2 s . c o m * @param pluginId ID of the data connector * @param pluginConfig configuration element for the data connector * @param pluginConfigChildren child config elements for the data connect * @param pluginBuilder builder of the data connector * @param parserContext current configuration parsing context */ protected void processQueryHandlingConfig(String pluginId, Element pluginConfig, Map<QName, List<Element>> pluginConfigChildren, BeanDefinitionBuilder pluginBuilder, ParserContext parserContext) { String templateEngineRef = pluginConfig.getAttributeNS(null, "templateEngine"); pluginBuilder.addPropertyReference("templateEngine", templateEngineRef); List<Element> queryTemplateElems = pluginConfigChildren .get(new QName(DataConnectorNamespaceHandler.NAMESPACE, "QueryTemplate")); String queryTemplate = queryTemplateElems.get(0).getTextContent(); log.debug("Data connector {} query template: {}", pluginId, queryTemplate); pluginBuilder.addPropertyValue("queryTemplate", queryTemplate); long queryTimeout = 5 * 1000; if (pluginConfig.hasAttributeNS(null, "queryTimeout")) { queryTimeout = SpringConfigurationUtils.parseDurationToMillis( "queryTimeout on relational database connector " + pluginId, pluginConfig.getAttributeNS(null, "queryTimeout"), 0); } log.debug("Data connector {} SQL query timeout: {}ms", pluginId, queryTimeout); pluginBuilder.addPropertyValue("queryTimeout", queryTimeout); boolean useSP = false; if (pluginConfig.hasAttributeNS(null, "queryUsesStoredProcedure")) { useSP = XMLHelper .getAttributeValueAsBoolean(pluginConfig.getAttributeNodeNS(null, "queryUsesStoredProcedure")); } log.debug("Data connector {} query uses stored procedures: {}", pluginId, useSP); pluginBuilder.addPropertyValue("queryUsesStoredProcedures", useSP); boolean readOnlyCtx = true; if (pluginConfig.hasAttributeNS(null, "readOnlyConnection")) { readOnlyCtx = XMLHelper .getAttributeValueAsBoolean(pluginConfig.getAttributeNodeNS(null, "readOnlyConnection")); } log.debug("Data connector {} connections are read only: {}", pluginId, readOnlyCtx); pluginBuilder.addPropertyValue("readOnlyConnections", readOnlyCtx); }
From source file:net.shibboleth.idp.profile.spring.relyingparty.metadata.impl.AbstractDynamicHTTPMetadataProviderParser.java
/** {@inheritDoc} */ // Checkstyle: CyclomaticComplexity OFF -- more readable not split up @Override/*w ww. j av a2 s. c om*/ protected void doNativeParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doNativeParse(element, parserContext, builder); boolean haveTLSTrustEngine = false; if (element.hasAttributeNS(null, "tlsTrustEngineRef")) { builder.addPropertyReference("tLSTrustEngine", StringSupport.trimOrNull(element.getAttributeNS(null, "tlsTrustEngineRef"))); haveTLSTrustEngine = true; } else { BeanDefinition tlsTrustEngine = parseTLSTrustEngine(element, parserContext); if (tlsTrustEngine != null) { builder.addPropertyValue("tLSTrustEngine", tlsTrustEngine); haveTLSTrustEngine = true; } } if (element.hasAttributeNS(null, "httpClientRef")) { builder.addConstructorArgReference( StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientRef"))); if (element.hasAttributeNS(null, "requestTimeout") || element.hasAttributeNS(null, "disregardSslCertificate") || element.hasAttributeNS(null, "disregardTLSCertificate") || element.hasAttributeNS(null, "proxyHost") || element.hasAttributeNS(null, "proxyPort") || element.hasAttributeNS(null, "proxyUser") || element.hasAttributeNS(null, "proxyPassword")) { log.warn("httpClientRef overrides settings for requestTimeout, disregardSslCertificate, " + "disregardTLSCertificate, proxyHost, proxyPort, proxyUser and proxyPassword"); } } else { builder.addConstructorArgValue(buildHttpClient(element, parserContext, haveTLSTrustEngine)); } if (element.hasAttributeNS(null, "credentialsProviderRef")) { builder.addPropertyReference("credentialsProviderRef", StringSupport.trimOrNull(element.getAttributeNS(null, "credentialsProviderRef"))); if (element.hasAttributeNS(null, BASIC_AUTH_USER) || element.hasAttributeNS(null, BASIC_AUTH_PASSWORD)) { log.warn("credentialsProviderRef overrides settings for basicAuthUser and basicAuthPassword"); } } else { if (element.hasAttributeNS(null, BASIC_AUTH_USER) || element.hasAttributeNS(null, BASIC_AUTH_PASSWORD)) { builder.addPropertyValue("basicCredentials", buildBasicCredentials(element)); } } if (element.hasAttributeNS(null, "supportedContentTypes")) { List<String> supportedContentTypes = StringSupport.stringToList( StringSupport.trimOrNull(element.getAttributeNS(null, "supportedContentTypes")), XMLConstants.LIST_DELIMITERS); builder.addPropertyValue("supportedContentTypes", supportedContentTypes); } }
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.resolver.dataConnector.RDBMSDataConnectorBeanDefinitionParser.java
/** * Processes the cache configuration options. * //from w w w.ja v a 2 s .c o m * @param pluginId ID of the data connector * @param pluginConfig configuration element for the data connector * @param pluginConfigChildren child config elements for the data connect * @param pluginBuilder builder of the data connector * @param parserContext current configuration parsing context */ protected void processCacheConfig(String pluginId, Element pluginConfig, Map<QName, List<Element>> pluginConfigChildren, BeanDefinitionBuilder pluginBuilder, ParserContext parserContext) { boolean cacheResults = false; String cacheManagerId = "shibboleth.CacheManager"; long cacheElementTtl = 4 * 60 * 60 * 1000; int maximumCachedElements = 500; List<Element> cacheConfigs = XMLHelper.getChildElementsByTagNameNS(pluginConfig, DataConnectorNamespaceHandler.NAMESPACE, "ResultCache"); if (cacheConfigs != null && !cacheConfigs.isEmpty()) { Element cacheConfig = cacheConfigs.get(0); cacheResults = true; if (cacheConfig.hasAttributeNS(null, "cacheManagerRef")) { cacheManagerId = DatatypeHelper.safeTrim(cacheConfig.getAttributeNS(null, "cacheManagerRef")); } if (cacheConfig.hasAttributeNS(null, "elementTimeToLive")) { cacheElementTtl = SpringConfigurationUtils.parseDurationToMillis( "elementTimeToLive on data connector " + pluginId, cacheConfig.getAttributeNS(null, "elementTimeToLive"), 0); } if (cacheConfig.hasAttributeNS(null, "maximumCachedElements")) { maximumCachedElements = Integer.parseInt( DatatypeHelper.safeTrim(cacheConfig.getAttributeNS(null, "maximumCachedElements"))); } } if (pluginConfig.hasAttributeNS(null, "cacheResults")) { log.warn( "Data connection {}: use of 'cacheResults' attribute is deprecated. Use <ResultCache> instead.", pluginId); cacheResults = XMLHelper .getAttributeValueAsBoolean(pluginConfig.getAttributeNodeNS(null, "cacheResults")); } if (cacheResults) { log.debug("Data connector {} is caching results: {}", pluginId, cacheResults); pluginBuilder.addPropertyReference("cacheManager", cacheManagerId); log.debug("Data connector {} cache element time to live: {}ms", pluginId, cacheElementTtl); pluginBuilder.addPropertyValue("cacheElementTimeToLive", cacheElementTtl); log.debug("Data connector {} maximum number of caches elements: {}", pluginId, maximumCachedElements); pluginBuilder.addPropertyValue("maximumCachedElements", maximumCachedElements); } }
From source file:org.unitedid.shibboleth.config.attribute.resolver.dataConnector.MongoDbDataConnectorBeanDefinitionParser.java
/** {@inheritDoc} */ protected void doParse(String pluginId, Element pluginConfig, Map<QName, List<Element>> pluginConfigChildren, BeanDefinitionBuilder pluginBuilder, ParserContext parserContext) { super.doParse(pluginId, pluginConfig, pluginConfigChildren, pluginBuilder, parserContext); /**//from w ww .j a v a 2s . co m * Data connector attributes (<resolver:DataConnector attr1="" attr2=""></resolver:DataConnector>) */ String mongoDbName = pluginConfig.getAttributeNS(null, "mongoDbName"); log.info("Data connector {} MONGODB DATABASE: {}", pluginId, mongoDbName); pluginBuilder.addPropertyValue("mongoDbName", mongoDbName); String mongoCollection = pluginConfig.getAttributeNS(null, "mongoCollection"); log.info("Data connector {} MONGODB COLLECTION: {}", pluginId, mongoCollection); pluginBuilder.addPropertyValue("mongoCollection", mongoCollection); if (pluginConfig.hasAttributeNS(null, "mongoUser")) { String mongoUser = pluginConfig.getAttributeNS(null, "mongoUser"); log.info("Data connector {} MONGODB USERNAME: {}", pluginId, mongoUser); pluginBuilder.addPropertyValue("mongoUser", mongoUser); } if (pluginConfig.hasAttributeNS(null, "mongoPassword")) { String mongoPassword = pluginConfig.getAttributeNS(null, "mongoPassword"); pluginBuilder.addPropertyValue("mongoPassword", mongoPassword); } String preferredRead = "primaryPreferred"; if (pluginConfig.hasAttributeNS(null, "preferredRead")) { preferredRead = pluginConfig.getAttributeNS(null, "preferredRead"); } log.info("Data connector {} preferredRead type: {}", pluginId, preferredRead); pluginBuilder.addPropertyValue("preferredRead", preferredRead); boolean cacheResults = false; if (pluginConfig.hasAttributeNS(null, "cacheResults")) { cacheResults = XMLHelper .getAttributeValueAsBoolean(pluginConfig.getAttributeNodeNS(null, "cacheResults")); } log.info("Data connector {} cache results: {}", pluginId, cacheResults); pluginBuilder.addPropertyValue("cacheResults", cacheResults); /** * Mongodb host entries (<uid:MongoHost host="" port="" />) */ List<ServerAddress> hosts = parseMongoHostNames(pluginId, pluginConfigChildren); log.debug("Data connector {} hosts {}", pluginId, hosts.toString()); pluginBuilder.addPropertyValue("mongoHost", hosts); boolean usePersistentId = false; if (pluginConfigChildren.containsKey(PID_ELEMENT_NAME)) { Element e = pluginConfigChildren.get(PID_ELEMENT_NAME).get(0); pluginBuilder.addPropertyValue("pidGeneratedAttributeId", e.getAttributeNS(null, "generatedAttributeId")); pluginBuilder.addPropertyValue("pidSourceAttributeId", e.getAttributeNS(null, "sourceAttributeId")); usePersistentId = true; } log.info("Data connector {} running in persistentId mode: {}", pluginId, usePersistentId); pluginBuilder.addPropertyValue("usePersistentId", usePersistentId); List<MongoDbKeyAttributeMapper> keyAttributeMaps = parseAttributeMappings(pluginId, pluginConfigChildren); pluginBuilder.addPropertyValue("keyAttributeMap", keyAttributeMaps); if (!usePersistentId) { String queryTemplate = pluginConfigChildren.get(QUERY_TEMPLATE_ELEMENT_NAME).get(0).getTextContent(); queryTemplate = DatatypeHelper.safeTrimOrNullString(queryTemplate); log.debug("Data connector {} query template: {}", pluginId, queryTemplate); pluginBuilder.addPropertyValue("queryTemplate", queryTemplate); } String templateEngineRef = pluginConfig.getAttributeNS(null, "templateEngine"); pluginBuilder.addPropertyReference("templateEngine", templateEngineRef); }
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.resolver.dataConnector.LdapDataConnectorBeanDefinitionParser.java
/** * Process the basic LDAP connection configuration for the LDAP data connector. * //from ww w . j a v a2 s .c o m * @param pluginId ID of the LDAP plugin * @param pluginConfig LDAP plugin configuration element * @param pluginConfigChildren child elements of the plugin * @param pluginBuilder plugin builder * @param parserContext current parsing context */ protected void processBasicConnectionConfig(String pluginId, Element pluginConfig, Map<QName, List<Element>> pluginConfigChildren, BeanDefinitionBuilder pluginBuilder, ParserContext parserContext) { String ldapURL = pluginConfig.getAttributeNS(null, "ldapURL"); log.debug("Data connector {} LDAP URL: {}", pluginId, ldapURL); pluginBuilder.addPropertyValue("ldapUrl", ldapURL); ConnectionStrategy connStrategy = ConnectionStrategy.ACTIVE_PASSIVE; if (pluginConfig.hasAttributeNS(null, "connectionStrategy")) { connStrategy = ConnectionStrategy.valueOf(pluginConfig.getAttributeNS(null, "connectionStrategy")); } log.debug("Data connector {} connection strategy: {}", pluginId, connStrategy); pluginBuilder.addPropertyValue("connectionStrategy", connStrategy); if (pluginConfig.hasAttributeNS(null, "baseDN")) { String baseDN = pluginConfig.getAttributeNS(null, "baseDN"); log.debug("Data connector {} base DN: {}", pluginId, baseDN); pluginBuilder.addPropertyValue("baseDN", baseDN); } AUTHENTICATION_TYPE authnType = AUTHENTICATION_TYPE.SIMPLE; if (pluginConfig.hasAttributeNS(null, "authenticationType")) { authnType = AUTHENTICATION_TYPE.valueOf(pluginConfig.getAttributeNS(null, "authenticationType")); } log.debug("Data connector {} authentication type: {}", pluginId, authnType); pluginBuilder.addPropertyValue("authenticationType", authnType); String principal = pluginConfig.getAttributeNS(null, "principal"); log.debug("Data connector {} principal: {}", pluginId, principal); pluginBuilder.addPropertyValue("principal", principal); String credential = pluginConfig.getAttributeNS(null, "principalCredential"); pluginBuilder.addPropertyValue("principalCredential", credential); String templateEngineRef = pluginConfig.getAttributeNS(null, "templateEngine"); pluginBuilder.addPropertyReference("templateEngine", templateEngineRef); String filterTemplate = pluginConfigChildren .get(new QName(DataConnectorNamespaceHandler.NAMESPACE, "FilterTemplate")).get(0).getTextContent(); filterTemplate = DatatypeHelper.safeTrimOrNullString(filterTemplate); log.debug("Data connector {} LDAP filter template: {}", pluginId, filterTemplate); pluginBuilder.addPropertyValue("filterTemplate", filterTemplate); SearchScope searchScope = SearchScope.SUBTREE; if (pluginConfig.hasAttributeNS(null, "searchScope")) { searchScope = SearchScope.valueOf(pluginConfig.getAttributeNS(null, "searchScope")); } log.debug("Data connector {} search scope: {}", pluginId, searchScope); pluginBuilder.addPropertyValue("searchScope", searchScope); QName returnAttributesName = new QName(DataConnectorNamespaceHandler.NAMESPACE, "ReturnAttributes"); if (pluginConfigChildren.containsKey(returnAttributesName)) { List<String> returnAttributes = XMLHelper .getElementContentAsList(pluginConfigChildren.get(returnAttributesName).get(0)); log.debug("Data connector {} return attributes: {}", pluginId, returnAttributes); pluginBuilder.addPropertyValue("returnAttributes", returnAttributes); } }
From source file:edu.internet2.middleware.shibboleth.common.config.attribute.resolver.dataConnector.LdapDataConnectorBeanDefinitionParser.java
/** * Processes the cache configuration directives. * //from www. j a v a 2 s . c o m * @param pluginId ID of the plugin * @param pluginConfig configuration element for the plugin * @param pluginBuilder builder for the plugin */ protected void processCacheConfig(String pluginId, Element pluginConfig, BeanDefinitionBuilder pluginBuilder) { boolean cacheResults = false; String cacheManagerId = "shibboleth.CacheManager"; long cacheElementTtl = 4 * 60 * 60 * 1000; int maximumCachedElements = 500; List<Element> cacheConfigs = XMLHelper.getChildElementsByTagNameNS(pluginConfig, DataConnectorNamespaceHandler.NAMESPACE, "ResultCache"); if (cacheConfigs != null && !cacheConfigs.isEmpty()) { Element cacheConfig = cacheConfigs.get(0); cacheResults = true; if (cacheConfig.hasAttributeNS(null, "cacheManagerRef")) { cacheManagerId = DatatypeHelper.safeTrim(cacheConfig.getAttributeNS(null, "cacheManagerRef")); } if (cacheConfig.hasAttributeNS(null, "elementTimeToLive")) { cacheElementTtl = SpringConfigurationUtils.parseDurationToMillis( "elementTimeToLive on data connector " + pluginId, cacheConfig.getAttributeNS(null, "elementTimeToLive"), 0); } if (cacheConfig.hasAttributeNS(null, "maximumCachedElements")) { maximumCachedElements = Integer.parseInt( DatatypeHelper.safeTrim(cacheConfig.getAttributeNS(null, "maximumCachedElements"))); } } if (pluginConfig.hasAttributeNS(null, "cacheResults")) { log.warn( "Data connection {}: use of 'cacheResults' attribute is deprecated. Use <ResultCache> instead.", pluginId); cacheResults = XMLHelper .getAttributeValueAsBoolean(pluginConfig.getAttributeNodeNS(null, "cacheResults")); } if (cacheResults) { log.debug("Data connector {} is caching results: {}", pluginId, cacheResults); pluginBuilder.addPropertyReference("cacheManager", cacheManagerId); log.debug("Data connector {} cache element time to live: {}ms", pluginId, cacheElementTtl); pluginBuilder.addPropertyValue("cacheElementTimeToLive", cacheElementTtl); log.debug("Data connector {} maximum number of caches elements: {}", pluginId, maximumCachedElements); pluginBuilder.addPropertyValue("maximumCachedElements", maximumCachedElements); } }
From source file:edu.internet2.middleware.shibboleth.common.config.resource.SVNResourceBeanDefinitionParser.java
/** {@inheritDoc} */ protected String resolveId(Element configElement, AbstractBeanDefinition beanDefinition, ParserContext parserContext) {/* www. j a va2 s.com*/ return SVNResource.class.getName() + ":" + DatatypeHelper .safeTrimOrNullString(configElement.getAttributeNS(null, REPOSITORY_URL_ATTRIB_NAME)); }
From source file:net.gfipm.shibboleth.config.GfipmBAEDataConnectorBeanDefinitionParser.java
/** {@inheritDoc} */ protected void doParse(String pluginId, Element pluginConfig, Map<QName, List<Element>> pluginConfigChildren, BeanDefinitionBuilder pluginBuilder, ParserContext parserContext) { super.doParse(pluginId, pluginConfig, pluginConfigChildren, pluginBuilder, parserContext); List<BAEAttributeNameMap> attributes = parseAttributes(pluginConfigChildren.get(ATTRIBUTE_ELEMENT_NAME)); log.debug("Setting the following attributes for plugin {}: {}", pluginId, attributes); pluginBuilder.addPropertyValue("baeAttributes", attributes); String baeURL = pluginConfig.getAttributeNS(null, "baeURL"); String baeEntityId = pluginConfig.getAttributeNS(null, "baeEntityId"); String myEntityId = pluginConfig.getAttributeNS(null, "myEntityId"); String subjectId = pluginConfig.getAttributeNS(null, "subjectId"); pluginBuilder.addPropertyValue("baeURL", baeURL); pluginBuilder.addPropertyValue("baeEntityId", baeEntityId); pluginBuilder.addPropertyValue("myEntityId", myEntityId); pluginBuilder.addPropertyValue("subjectId", subjectId); int searchTimeLimit = 5000; if (pluginConfig.hasAttributeNS(null, "searchTimeLimit")) { searchTimeLimit = Integer.parseInt(pluginConfig.getAttributeNS(null, "searchTimeLimit")); }/*from www .j a v a 2 s .c om*/ log.debug("Data connector {} search timeout: {}ms", pluginId, searchTimeLimit); pluginBuilder.addPropertyValue("searchTimeLimit", searchTimeLimit); RuntimeBeanReference trustCredential = processCredential( pluginConfigChildren.get(new QName(GFIPMNamespaceHandler.NAMESPACE, "TrustCredential")), parserContext); log.debug("Data connector {} using provided trust material", pluginId); pluginBuilder.addPropertyValue("trustCredential", trustCredential); RuntimeBeanReference myCredential = processCredential( pluginConfigChildren.get(new QName(GFIPMNamespaceHandler.NAMESPACE, "AuthenticationCredential")), parserContext); log.debug("Data connector {} using provided client authentication material", pluginId); pluginBuilder.addPropertyValue("myCredential", myCredential); }