List of usage examples for org.apache.commons.lang StringUtils substringAfter
public static String substringAfter(String str, String separator)
Gets the substring after the first occurrence of a separator.
From source file:org.apache.archiva.indexer.maven.search.MavenRepositorySearch.java
private IndexingContext getIndexingContext(String id) { String repoId;//w w w. j av a2s .c o m if (StringUtils.startsWith(id, "remote-")) { repoId = StringUtils.substringAfter(id, "remote-"); } else { repoId = id; } Repository repo = repositoryRegistry.getRepository(repoId); if (repo == null) { return null; } else { if (repo.getIndexingContext() != null) { try { return repo.getIndexingContext().getBaseContext(IndexingContext.class); } catch (UnsupportedBaseContextException e) { return null; } } else { return null; } } }
From source file:org.apache.archiva.indexer.maven.search.MavenRepositorySearch.java
/** * calculate baseUrl without the context and base Archiva Url * * @param artifactInfo//from w ww. ja va 2 s .c o m * @return */ protected String getBaseUrl(ArtifactInfo artifactInfo, List<String> selectedRepos) throws RepositoryAdminException { StringBuilder sb = new StringBuilder(); if (StringUtils.startsWith(artifactInfo.getContext(), "remote-")) { // it's a remote index result we search a managed which proxying this remote and on which // current user has read karma String managedRepoId = getManagedRepoId( StringUtils.substringAfter(artifactInfo.getContext(), "remote-"), selectedRepos); if (managedRepoId != null) { sb.append('/').append(managedRepoId); artifactInfo.setContext(managedRepoId); } } else { sb.append('/').append(artifactInfo.getContext()); } sb.append('/').append(StringUtils.replaceChars(artifactInfo.getGroupId(), '.', '/')); sb.append('/').append(artifactInfo.getArtifactId()); sb.append('/').append(artifactInfo.getVersion()); sb.append('/').append(artifactInfo.getArtifactId()); sb.append('-').append(artifactInfo.getVersion()); if (StringUtils.isNotBlank(artifactInfo.getClassifier())) { sb.append('-').append(artifactInfo.getClassifier()); } // maven-plugin packaging is a jar if (StringUtils.equals("maven-plugin", artifactInfo.getPackaging())) { sb.append("jar"); } else { sb.append('.').append(artifactInfo.getPackaging()); } return sb.toString(); }
From source file:org.apache.archiva.indexer.search.MavenRepositorySearch.java
/** * calculate baseUrl without the context and base Archiva Url * * @param artifactInfo/* w w w . j a va 2 s. co m*/ * @return */ protected String getBaseUrl(ArtifactInfo artifactInfo, List<String> selectedRepos) throws RepositoryAdminException { StringBuilder sb = new StringBuilder(); if (StringUtils.startsWith(artifactInfo.context, "remote-")) { // it's a remote index result we search a managed which proxying this remote and on which // current user has read karma String managedRepoId = getManagedRepoId(StringUtils.substringAfter(artifactInfo.context, "remote-"), selectedRepos); if (managedRepoId != null) { sb.append('/').append(managedRepoId); artifactInfo.context = managedRepoId; } } else { sb.append('/').append(artifactInfo.context); } sb.append('/').append(StringUtils.replaceChars(artifactInfo.groupId, '.', '/')); sb.append('/').append(artifactInfo.artifactId); sb.append('/').append(artifactInfo.version); sb.append('/').append(artifactInfo.artifactId); sb.append('-').append(artifactInfo.version); if (StringUtils.isNotBlank(artifactInfo.classifier)) { sb.append('-').append(artifactInfo.classifier); } // maven-plugin packaging is a jar if (StringUtils.equals("maven-plugin", artifactInfo.packaging)) { sb.append("jar"); } else { sb.append('.').append(artifactInfo.packaging); } return sb.toString(); }
From source file:org.apache.archiva.metadata.repository.cassandra.CassandraMetadataRepository.java
@Override public Collection<String> getNamespaces(final String repoId, final String namespaceId) throws MetadataResolutionException { QueryResult<OrderedRows<String, String, String>> result = HFactory // .createRangeSlicesQuery(keyspace, ss, ss, ss) // .setColumnFamily(cassandraArchivaManager.getNamespaceFamilyName()) // .setColumnNames(NAME.toString()) // .addEqualsExpression(REPOSITORY_NAME.toString(), repoId) // .execute();//from w w w . j av a 2 s . co m List<String> namespaces = new ArrayList<>(result.get().getCount()); for (Row<String, String, String> row : result.get()) { String currentNamespace = getStringValue(row.getColumnSlice(), NAME.toString()); if (StringUtils.startsWith(currentNamespace, namespaceId) // && (StringUtils.length(currentNamespace) > StringUtils.length(namespaceId))) { // store after namespaceId '.' but before next '.' // call org namespace org.apache.maven.shared -> stored apache String calledNamespace = StringUtils.endsWith(namespaceId, ".") ? namespaceId : namespaceId + "."; String storedNamespace = StringUtils.substringAfter(currentNamespace, calledNamespace); storedNamespace = StringUtils.substringBefore(storedNamespace, "."); namespaces.add(storedNamespace); } } return namespaces; }
From source file:org.apache.archiva.redback.common.ldap.role.DefaultLdapRoleMapper.java
public List<String> getAllGroups(DirContext context) throws MappingException { NamingEnumeration<SearchResult> namingEnumeration = null; try {/*from w w w. jav a2s .com*/ SearchControls searchControls = new SearchControls(); searchControls.setDerefLinkFlag(true); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "objectClass=" + getLdapGroupClass(); if (!StringUtils.isEmpty(this.groupFilter)) { filter = "(&(" + filter + ")(" + this.groupFilter + "))"; } namingEnumeration = context.search(getGroupsDn(), filter, searchControls); List<String> allGroups = new ArrayList<String>(); while (namingEnumeration.hasMore()) { SearchResult searchResult = namingEnumeration.next(); String groupName = searchResult.getName(); // cn=blabla we only want bla bla groupName = StringUtils.substringAfter(groupName, "="); log.debug("found groupName: '{}", groupName); allGroups.add(groupName); } return allGroups; } catch (LdapException e) { throw new MappingException(e.getMessage(), e); } catch (NamingException e) { throw new MappingException(e.getMessage(), e); } finally { close(namingEnumeration); } }
From source file:org.apache.archiva.redback.common.ldap.role.DefaultLdapRoleMapper.java
public List<String> getGroupsMember(String group, DirContext context) throws MappingException { NamingEnumeration<SearchResult> namingEnumeration = null; try {//from w w w .j av a 2 s.c om SearchControls searchControls = new SearchControls(); searchControls.setDerefLinkFlag(true); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "objectClass=" + getLdapGroupClass(); namingEnumeration = context.search("cn=" + group + "," + getGroupsDn(), filter, searchControls); List<String> allMembers = new ArrayList<String>(); while (namingEnumeration.hasMore()) { SearchResult searchResult = namingEnumeration.next(); Attribute uniqueMemberAttr = searchResult.getAttributes().get(getLdapGroupMember()); if (uniqueMemberAttr != null) { NamingEnumeration<String> allMembersEnum = (NamingEnumeration<String>) uniqueMemberAttr .getAll(); while (allMembersEnum.hasMore()) { String userName = allMembersEnum.next(); // uid=blabla we only want bla bla userName = StringUtils.substringAfter(userName, "="); userName = StringUtils.substringBefore(userName, ","); log.debug("found userName for group {}: '{}", group, userName); allMembers.add(userName); } close(allMembersEnum); } } return allMembers; } catch (LdapException e) { throw new MappingException(e.getMessage(), e); } catch (NamingException e) { throw new MappingException(e.getMessage(), e); } finally { close(namingEnumeration); } }
From source file:org.apache.archiva.redback.common.ldap.role.DefaultLdapRoleMapper.java
public List<String> getGroups(String username, DirContext context) throws MappingException { List<String> userGroups = new ArrayList<String>(); NamingEnumeration<SearchResult> namingEnumeration = null; try {/*from ww w .j a v a 2 s . c o m*/ SearchControls searchControls = new SearchControls(); searchControls.setDerefLinkFlag(true); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); String groupEntry = null; try { //try to look the user up User user = userManager.findUser(username); if (user instanceof LdapUser) { LdapUser ldapUser = LdapUser.class.cast(user); Attribute dnAttribute = ldapUser.getOriginalAttributes().get(getLdapDnAttribute()); if (dnAttribute != null) { groupEntry = String.class.cast(dnAttribute.get()); } } } catch (UserNotFoundException e) { log.warn("Failed to look up user {}. Computing distinguished name manually", username, e); } catch (UserManagerException e) { log.warn("Failed to look up user {}. Computing distinguished name manually", username, e); } if (groupEntry == null) { //failed to look up the user's groupEntry directly StringBuilder builder = new StringBuilder(); String posixGroup = "posixGroup"; if (posixGroup.equals(getLdapGroupClass())) { builder.append(username); } else { builder.append(this.userIdAttribute).append("=").append(username).append(",") .append(getBaseDn()); } groupEntry = builder.toString(); } String filter = new StringBuilder().append("(&").append("(objectClass=" + getLdapGroupClass() + ")") .append("(").append(getLdapGroupMember()).append("=").append(Rdn.escapeValue(groupEntry)) .append(")").append(")").toString(); log.debug("filter: {}", filter); namingEnumeration = context.search(getGroupsDn(), filter, searchControls); while (namingEnumeration.hasMore()) { SearchResult searchResult = namingEnumeration.next(); List<String> allMembers = new ArrayList<String>(); Attribute uniqueMemberAttr = searchResult.getAttributes().get(getLdapGroupMember()); if (uniqueMemberAttr != null) { NamingEnumeration<String> allMembersEnum = (NamingEnumeration<String>) uniqueMemberAttr .getAll(); while (allMembersEnum.hasMore()) { String userName = allMembersEnum.next(); //the original dn allMembers.add(userName); // uid=blabla we only want bla bla userName = StringUtils.substringAfter(userName, "="); userName = StringUtils.substringBefore(userName, ","); allMembers.add(userName); } close(allMembersEnum); } if (allMembers.contains(username)) { String groupName = searchResult.getName(); // cn=blabla we only want bla bla groupName = StringUtils.substringAfter(groupName, "="); userGroups.add(groupName); } else if (allMembers.contains(groupEntry)) { String groupName = searchResult.getName(); // cn=blabla we only want bla bla groupName = StringUtils.substringAfter(groupName, "="); userGroups.add(groupName); } } return userGroups; } catch (LdapException e) { throw new MappingException(e.getMessage(), e); } catch (NamingException e) { throw new MappingException(e.getMessage(), e); } finally { close(namingEnumeration); } }
From source file:org.apache.archiva.redback.common.ldap.role.DefaultLdapRoleMapperConfiguration.java
public Map<String, Collection<String>> getLdapGroupMappings() { Multimap<String, String> map = ArrayListMultimap.create(); Collection<String> keys = userConf.getKeys(); for (String key : keys) { if (key.startsWith(UserConfigurationKeys.LDAP_GROUPS_ROLE_START_KEY)) { String val = userConf.getString(key); String[] roles = StringUtils.split(val, ','); for (String role : roles) { map.put(StringUtils.substringAfter(key, UserConfigurationKeys.LDAP_GROUPS_ROLE_START_KEY), role);//from ww w. jav a 2 s .co m } } } for (Map.Entry<String, List<String>> entry : this.ldapMappings.entrySet()) { map.putAll(entry.getKey(), entry.getValue()); } Map<String, Collection<String>> mappings = map.asMap(); return mappings; }
From source file:org.apache.archiva.redback.users.ldap.ctl.DefaultLdapController.java
public Map<String, Collection<String>> findUsersWithRoles(DirContext dirContext) throws LdapControllerException { Map<String, Collection<String>> usersWithRoles = new HashMap<String, Collection<String>>(); NamingEnumeration<SearchResult> namingEnumeration = null; try {// w w w .j a v a 2 s . c om SearchControls searchControls = new SearchControls(); searchControls.setDerefLinkFlag(true); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "objectClass=" + getLdapGroupClass(); namingEnumeration = dirContext.search(getGroupsDn(), filter, searchControls); while (namingEnumeration.hasMore()) { SearchResult searchResult = namingEnumeration.next(); String groupName = searchResult.getName(); // cn=blabla we only want bla bla groupName = StringUtils.substringAfter(groupName, "="); Attribute uniqueMemberAttr = searchResult.getAttributes().get("uniquemember"); if (uniqueMemberAttr != null) { NamingEnumeration<String> allMembersEnum = (NamingEnumeration<String>) uniqueMemberAttr .getAll(); while (allMembersEnum.hasMore()) { String userName = allMembersEnum.next(); // uid=blabla we only want bla bla userName = StringUtils.substringAfter(userName, "="); userName = StringUtils.substringBefore(userName, ","); Collection<String> roles = usersWithRoles.get(userName); if (roles == null) { roles = new HashSet<String>(); } roles.add(groupName); usersWithRoles.put(userName, roles); } } log.debug("found groupName: '{}' with users: {}", groupName); } return usersWithRoles; } catch (NamingException e) { throw new LdapControllerException(e.getMessage(), e); } finally { if (namingEnumeration != null) { try { namingEnumeration.close(); } catch (NamingException e) { log.warn("failed to close search results", e); } } } }
From source file:org.apache.archiva.rest.services.DefaultRedbackRuntimeConfigurationService.java
@Override public List<UserManagerImplementationInformation> getUserManagerImplementationInformations() throws ArchivaRestServiceException { Map<String, UserManager> beans = applicationContext.getBeansOfType(UserManager.class); if (beans.isEmpty()) { return Collections.emptyList(); }//from w w w .j a va2 s .c om List<UserManagerImplementationInformation> informations = new ArrayList<>(beans.size()); for (Map.Entry<String, UserManager> entry : beans.entrySet()) { UserManager userManager = applicationContext.getBean(entry.getKey(), UserManager.class); if (userManager.isFinalImplementation()) { UserManagerImplementationInformation information = new UserManagerImplementationInformation(); information.setBeanId(StringUtils.substringAfter(entry.getKey(), "#")); information.setDescriptionKey(userManager.getDescriptionKey()); information.setReadOnly(userManager.isReadOnly()); informations.add(information); } } return informations; }