Java Code Examples for org.apache.commons.lang3.StringUtils#splitByWholeSeparatorPreserveAllTokens()
The following examples show how to use
org.apache.commons.lang3.StringUtils#splitByWholeSeparatorPreserveAllTokens() .
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: Topics.java From mithqtt with Apache License 2.0 | 6 votes |
/** * Validate the topic filter, add EMPTY and END, return as a List of levels * * @param topicFilter Topic Filter * @return List of levels */ public static List<String> sanitizeTopicFilter(String topicFilter) { if (StringUtils.isEmpty(topicFilter)) throw new IllegalArgumentException("Empty topic filer"); if (!topicFilter.contains("+") && !topicFilter.contains("#")) throw new IllegalArgumentException("Topic filter does not contain wildcard"); List<String> levels = new ArrayList<>(); if (topicFilter.startsWith("/")) topicFilter = EMPTY + topicFilter; if (topicFilter.endsWith("/")) topicFilter = topicFilter + EMPTY; String[] tokens = StringUtils.splitByWholeSeparatorPreserveAllTokens(topicFilter, "/"); for (int i = 0; i < tokens.length; i++) { if (tokens[i].contains("+") && !tokens[i].equals("+")) throw new IllegalArgumentException("Illegal topic filter: " + topicFilter); if (tokens[i].contains("#") && !tokens[i].equals("#")) throw new IllegalArgumentException("Illegal topic filter: " + topicFilter); if (tokens[i].equals("#") && !(i == tokens.length - 1 || (i == tokens.length - 2 && END.equals(tokens[i + 1])))) throw new IllegalArgumentException("Illegal topic filter: " + topicFilter); levels.add(StringUtils.isNotEmpty(tokens[i]) ? tokens[i] : EMPTY); } if (!topicFilter.endsWith(END)) levels.add(END); return levels; }
Example 2
Source File: QQOAuth2Template.java From pre with GNU General Public License v3.0 | 5 votes |
@Override protected AccessGrant postForAccessGrant(String accessTokenUrl, MultiValueMap<String, String> parameters) { String responseStr = getRestTemplate().postForObject(accessTokenUrl, parameters, String.class); log.info("获取accessToke的响应:"+responseStr); String[] items = StringUtils.splitByWholeSeparatorPreserveAllTokens(responseStr, "&"); String accessToken = StringUtils.substringAfterLast(items[0], "="); Long expiresIn = new Long(StringUtils.substringAfterLast(items[1], "=")); String refreshToken = StringUtils.substringAfterLast(items[2], "="); return new AccessGrant(accessToken, null, refreshToken, expiresIn); }
Example 3
Source File: MenuController.java From FEBS-Cloud with Apache License 2.0 | 5 votes |
@GetMapping("/{username}") public FebsResponse getUserRouters(@NotBlank(message = "{required}") @PathVariable String username) { Map<String, Object> result = new HashMap<>(2); List<VueRouter<Menu>> userRouters = this.menuService.getUserRouters(username); String userPermissions = this.menuService.findUserPermissions(username); String[] permissionArray = new String[0]; if (StringUtils.isNoneBlank(userPermissions)) { permissionArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(userPermissions, StringConstant.COMMA); } result.put("routes", userRouters); result.put("permissions", permissionArray); return new FebsResponse().data(result); }
Example 4
Source File: GlobalExceptionHandler.java From SpringAll with MIT License | 5 votes |
/** * 统一处理请求参数校验(普通传参) * * @param e ConstraintViolationException * @return FebsResponse */ @ExceptionHandler(value = ConstraintViolationException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public String handleConstraintViolationException(ConstraintViolationException e) { StringBuilder message = new StringBuilder(); Set<ConstraintViolation<?>> violations = e.getConstraintViolations(); for (ConstraintViolation<?> violation : violations) { Path path = violation.getPropertyPath(); String[] pathArr = StringUtils.splitByWholeSeparatorPreserveAllTokens(path.toString(), "."); message.append(pathArr[1]).append(violation.getMessage()).append(","); } message = new StringBuilder(message.substring(0, message.length() - 1)); return message.toString(); }
Example 5
Source File: QQOAuth2Template.java From cola with MIT License | 5 votes |
@Override protected AccessGrant postForAccessGrant(String accessTokenUrl, MultiValueMap<String, String> parameters) { String responseStr = getRestTemplate().postForObject(accessTokenUrl, parameters, String.class); log.info("【QQOAuth2Template】获取accessToke的响应:responseStr={}" , responseStr); String[] items = StringUtils.splitByWholeSeparatorPreserveAllTokens(responseStr, "&"); //http://wiki.connect.qq.com/使用authorization_code获取access_token //access_token=FE04************************CCE2&expires_in=7776000&refresh_token=88E4************************BE14 String accessToken = StringUtils.substringAfterLast(items[0], "="); Long expiresIn = new Long(StringUtils.substringAfterLast(items[1], "=")); String refreshToken = StringUtils.substringAfterLast(items[2], "="); return new AccessGrant(accessToken, null, refreshToken, expiresIn); }
Example 6
Source File: CollectionUtilities.java From cs-actions with Apache License 2.0 | 5 votes |
/** * Splits the stringArray by the delimiter into an array of strings without ignoring the escaped delimiters * * @param stringArray the string to be split * @param delimiter the delimiter by which to split the stringArray * @return an array of Strings */ @NotNull public static String[] toArrayWithEscaped(@Nullable final String stringArray, @NotNull final String delimiter) { if (StringUtils.isEmpty(stringArray)) { return new String[0]; } return StringUtils.splitByWholeSeparatorPreserveAllTokens(stringArray, delimiter); }
Example 7
Source File: SplitByWholeSeparator.java From vscrawler with Apache License 2.0 | 5 votes |
@Override protected String[] split(String str, String separatorChars, int max, boolean preserveAllTokens) { if (preserveAllTokens) { return StringUtils.splitByWholeSeparatorPreserveAllTokens(str, separatorChars, max); } else { return StringUtils.splitByWholeSeparator(str, separatorChars, max); } }
Example 8
Source File: SmsCodeFilter.java From FEBS-Security with Apache License 2.0 | 5 votes |
@Override public void afterPropertiesSet() throws ServletException { super.afterPropertiesSet(); String[] configUrls = StringUtils.splitByWholeSeparatorPreserveAllTokens(securityProperties.getCode().getSms().getUrl(), ","); url.addAll(Arrays.asList(configUrls)); url.add(securityProperties.getCode().getSms().getLoginProcessingUrl()); }
Example 9
Source File: SqlFunctionUtils.java From flink with Apache License 2.0 | 5 votes |
/** * Split target string with custom separator and pick the index-th(start with 0) result. * * @param str target string. * @param separator custom separator. * @param index index of the result which you want. * @return the string at the index of split results. */ public static String splitIndex(String str, String separator, int index) { if (index < 0) { return null; } String[] values = StringUtils.splitByWholeSeparatorPreserveAllTokens(str, separator); if (index >= values.length) { return null; } else { return values[index]; } }
Example 10
Source File: QQOAuth2Template.java From FEBS-Security with Apache License 2.0 | 5 votes |
@Override protected AccessGrant postForAccessGrant(String accessTokenUrl, MultiValueMap<String, String> parameters) { // access_token=FE04************************CCE2&expires_in=7776000&refresh_token=88E4************************BE14 String result = this.getRestTemplate().postForObject(accessTokenUrl, parameters, String.class); log.info("responseToken: {}", result); String[] params = StringUtils.splitByWholeSeparatorPreserveAllTokens(result, "&"); String accessToken = StringUtils.substringAfterLast(params[0], "="); Long expiresIn = Long.valueOf(StringUtils.substringAfterLast(params[1], "=")); String refreshToken = StringUtils.substringAfterLast(params[2], "="); return new AccessGrant(accessToken, null, refreshToken, expiresIn); }
Example 11
Source File: OauthClientDetailsServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 5 votes |
@Override @Transactional(rollbackFor = Exception.class) public void deleteOauthClientDetails(String clientIds) { Object[] clientIdArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(clientIds, StringConstant.COMMA); LambdaQueryWrapper<OauthClientDetails> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(OauthClientDetails::getClientId, clientIdArray); boolean removed = this.remove(queryWrapper); if (removed) { log.info("删除ClientId为({})的Client", clientIds); Arrays.stream(clientIdArray).forEach(c -> this.redisClientDetailsService.removeRedisCache(String.valueOf(c))); } }
Example 12
Source File: AbstractRestClient.java From async-gamequery-lib with MIT License | 5 votes |
/** * <p>A Simply utility method for parsing Content-Type which contains parameters</p> * * @param contentType A {@link String} containing the Content-Type * * @return The parsed content-type {@link String} excluding the parameters */ private String parseContentType(String contentType) { if (!StringUtils.isEmpty(contentType) && contentType.contains(";")) { String[] types = StringUtils.splitByWholeSeparatorPreserveAllTokens(contentType, ";", 2); if (types != null && types.length > 1) return types[0].trim(); } return contentType; }
Example 13
Source File: FuncotationMap.java From gatk with BSD 3-Clause "New" or "Revised" License | 5 votes |
/** Create a FuncotationMap where all Funcotations will be TableFuncotations. This is useful for parsing existing * VCFs. * Only renders for a single allele. * See {@link FuncotatorUtils#extractFuncotatorKeysFromHeaderDescription(String)} for getting the funcotation keys. * * @param transcriptFieldName The field name to use for transcript IDs. Use {@see NO_TRANSCRIPT_AVAILABLE_KEY} if unknown. * If not in the funcotation keys, then the Funcotation map will be created with one transcript ID, {@see NO_TRANSCRIPT_AVAILABLE_KEY} * Never {@code null} * @param funcotationKeys The ordered keys of the funcotation field. Never {@code null} * @param funcotationAttributeForSingleAllele The funcotation attribute from a VCF, split for a single Allele. Never {@code null} * @param altAllele The alternate allele for the created funcotations. Never {@code null} * @param datasourceName The datasource name to use for all of the created funcotatinos. Never {@code null} * @return a funcotation map. Note that no funcotations will be GencodeFuncotations. Never {@code null} */ public static FuncotationMap createAsAllTableFuncotationsFromVcf(final String transcriptFieldName, final String[] funcotationKeys, final String funcotationAttributeForSingleAllele, final Allele altAllele, final String datasourceName) { Utils.nonNull(transcriptFieldName); Utils.nonNull(funcotationKeys); Utils.nonNull(funcotationAttributeForSingleAllele); Utils.nonNull(altAllele); Utils.nonNull(datasourceName); final FuncotationMap result = createEmpty(); final String[] funcotationAttributeForSingleAlleleByTranscript = StringUtils.splitByWholeSeparator(funcotationAttributeForSingleAllele, VcfOutputRenderer.END_TRANSCRIPT_DELIMITER + VcfOutputRenderer.ALL_TRANSCRIPT_DELIMITER + VcfOutputRenderer.START_TRANSCRIPT_DELIMITER); for (final String funcotationAttribute : funcotationAttributeForSingleAlleleByTranscript) { final String[] values = StringUtils.splitByWholeSeparatorPreserveAllTokens(funcotationAttribute, VcfOutputRenderer.FIELD_DELIMITER); if (values[0].startsWith(VcfOutputRenderer.START_TRANSCRIPT_DELIMITER)) { values[0] = values[0].replace(VcfOutputRenderer.START_TRANSCRIPT_DELIMITER, ""); } if (values[values.length - 1].endsWith(VcfOutputRenderer.END_TRANSCRIPT_DELIMITER)) { values[values.length - 1] = values[values.length - 1].replace(VcfOutputRenderer.END_TRANSCRIPT_DELIMITER, ""); } if (values.length != funcotationKeys.length) { logger.error("Keys: " + StringUtils.join(funcotationKeys, ", ")); logger.error("Values: " + StringUtils.join(values, ", ")); throw new GATKException.ShouldNeverReachHereException("Cannot parse the funcotation attribute. Num values: " + values.length + " Num keys: " + funcotationKeys.length); } final Map<String, String> simpleNameValuePairs = IntStream.range(0, values.length).boxed().collect(Collectors .toMap(i -> funcotationKeys[i], i-> values[i])); final List<String> valuesAsList = Arrays.stream(funcotationKeys).map(simpleNameValuePairs::get).collect(Collectors.toList()); result.add(simpleNameValuePairs.getOrDefault(transcriptFieldName, NO_TRANSCRIPT_AVAILABLE_KEY), TableFuncotation.create(Arrays.asList(funcotationKeys), valuesAsList, altAllele, datasourceName, null)); } return result; }
Example 14
Source File: RoleServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 5 votes |
@Override @Transactional(rollbackFor = Exception.class) public void createRole(Role role) { role.setCreateTime(new Date()); this.save(role); if (StringUtils.isNotBlank(role.getMenuIds())) { String[] menuIds = StringUtils.splitByWholeSeparatorPreserveAllTokens(role.getMenuIds(), StringConstant.COMMA); setRoleMenus(role, menuIds); } }
Example 15
Source File: UserServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 5 votes |
@Override @Transactional(rollbackFor = Exception.class) public void createUser(SystemUser user) { // 创建用户 user.setCreateTime(new Date()); user.setAvatar(SystemUser.DEFAULT_AVATAR); user.setPassword(passwordEncoder.encode(SystemUser.DEFAULT_PASSWORD)); save(user); // 保存用户角色 String[] roles = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getRoleId(), StringConstant.COMMA); setUserRoles(user, roles); // 保存用户数据权限关联关系 String[] deptIds = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getDeptIds(), StringConstant.COMMA); setUserDataPermissions(user, deptIds); }
Example 16
Source File: BlackListServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 4 votes |
@Override public Flux<BlackList> delete(String ids) { String[] idArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(ids, StringConstant.COMMA); return blackListMapper.deleteByIdIn(Arrays.asList(idArray)) .doOnNext(routeEnhanceCacheService::removeBlackList); }
Example 17
Source File: RateLimitRuleServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 4 votes |
@Override public Flux<RateLimitRule> delete(String ids) { String[] idArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(ids, StringConstant.COMMA); return rateLimitRuleMapper.deleteByIdIn(Arrays.asList(idArray)) .doOnNext(routeEnhanceCacheService::removeRateLimitRule); }
Example 18
Source File: BlockLogServiceImpl.java From FEBS-Cloud with Apache License 2.0 | 4 votes |
@Override public Flux<BlockLog> delete(String ids) { String[] idArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(ids, StringConstant.COMMA); return blockLogMapper.deleteByIdIn(Arrays.asList(idArray)); }
Example 19
Source File: GhidraProtocolConnector.java From ghidra with Apache License 2.0 | 4 votes |
/** * Parse item path name from URL and establish initial values for folderPath and * folderItemName. * @return original item path from URL or null if not specified * @throws MalformedURLException if URL is invalid */ protected String parseItemPath() throws MalformedURLException { String path = url.getPath(); if (repositoryName == null) { return null; // presumed server-only URL } // strip off repository name from path path = path.substring(repositoryName.length() + 1); if (path.length() <= 1) { // root path specified folderPath = FileSystem.SEPARATOR; return folderPath; // repository URL, root folder } // Handles server repository URL case ghidra://<host>:<port>/<repository-name>[/<folder-path>]/[<folderItemName>] boolean isFolder = path.endsWith(FileSystem.SEPARATOR); folderPath = ""; String pathToSplit = isFolder ? path.substring(0, path.length() - 1) : path; String[] pieces = StringUtils.splitByWholeSeparatorPreserveAllTokens(pathToSplit, FileSystem.SEPARATOR); if (pieces.length == 0) { throw new MalformedURLException("invalid repository path specification"); } for (int i = 1; i < pieces.length; i++) { String p = pieces[i]; if (p.length() == 0) { throw new MalformedURLException("invalid repository path specification"); } if (!isFolder && i == (pieces.length - 1)) { folderItemName = p; } else { folderPath = folderPath + FileSystem.SEPARATOR + p; } } if (folderPath.length() == 0) { folderPath = FileSystem.SEPARATOR; } return path; }
Example 20
Source File: FebsSecurityConfig.java From FEBS-Security with Apache License 2.0 | 4 votes |
@Override protected void configure(HttpSecurity http) throws Exception { String[] anonResourcesUrl = StringUtils.splitByWholeSeparatorPreserveAllTokens(febsSecurityProperties.getAnonResourcesUrl(),","); ImageCodeFilter imageCodeFilter = new ImageCodeFilter(); imageCodeFilter.setAuthenticationFailureHandler(febsAuthenticationFailureHandler); imageCodeFilter.setSecurityProperties(febsSecurityProperties); imageCodeFilter.afterPropertiesSet(); SmsCodeFilter smsCodeFilter = new SmsCodeFilter(); smsCodeFilter.setAuthenticationFailureHandler(febsAuthenticationFailureHandler); smsCodeFilter.setSecurityProperties(febsSecurityProperties); smsCodeFilter.setSessionRegistry(sessionRegistry()); smsCodeFilter.afterPropertiesSet(); http.exceptionHandling().accessDeniedHandler(accessDeniedHandler()) // 权限不足处理器 .and() .addFilterBefore(smsCodeFilter, UsernamePasswordAuthenticationFilter.class) // 短信验证码校验 .addFilterBefore(imageCodeFilter, UsernamePasswordAuthenticationFilter.class) // 添加图形证码校验过滤器 .formLogin() // 表单方式 .loginPage(febsSecurityProperties.getLoginUrl()) // 未认证跳转 URL .loginProcessingUrl(febsSecurityProperties.getCode().getImage().getLoginProcessingUrl()) // 处理登录认证 URL .successHandler(febsAuthenticationSucessHandler) // 处理登录成功 .failureHandler(febsAuthenticationFailureHandler) // 处理登录失败 .and() .rememberMe() // 添加记住我功能 .tokenRepository(persistentTokenRepository()) // 配置 token 持久化仓库 .tokenValiditySeconds(febsSecurityProperties.getRememberMeTimeout()) // rememberMe 过期时间,单为秒 .userDetailsService(febsUserDetailService) // 处理自动登录逻辑 .and() .sessionManagement() // 配置 session管理器 .invalidSessionStrategy(invalidSessionStrategy()) // 处理 session失效 .maximumSessions(febsSecurityProperties.getSession().getMaximumSessions()) // 最大并发登录数量 .expiredSessionStrategy(new FebsExpiredSessionStrategy()) // 处理并发登录被踢出 .sessionRegistry(sessionRegistry()) // 配置 session注册中心 .and() .and() .logout() // 配置登出 .addLogoutHandler(logoutHandler()) // 配置登出处理器 .logoutUrl(febsSecurityProperties.getLogoutUrl()) // 处理登出 url .logoutSuccessUrl("/") // 登出后跳转到 / .deleteCookies("JSESSIONID") // 删除 JSESSIONID .and() .authorizeRequests() // 授权配置 .antMatchers(anonResourcesUrl).permitAll() // 免认证静态资源路径 .antMatchers( febsSecurityProperties.getLoginUrl(), // 登录路径 FebsConstant.FEBS_REGIST_URL, // 用户注册 url febsSecurityProperties.getCode().getImage().getCreateUrl(), // 创建图片验证码路径 febsSecurityProperties.getCode().getSms().getCreateUrl(), // 创建短信验证码路径 febsSecurityProperties.getSocial().getSocialRedirectUrl(), // 重定向到社交账号注册(绑定)页面路径 febsSecurityProperties.getSocial().getSocialBindUrl(), // 社交账号绑定 URL febsSecurityProperties.getSocial().getSocialRegistUrl() // 注册并绑定社交账号 URL ).permitAll() // 配置免认证路径 .anyRequest() // 所有请求 .authenticated() // 都需要认证 .and() .csrf().disable() .apply(febsSmsCodeAuthenticationSecurityConfig) // 添加短信验证码认证流程 .and() .apply(febsSocialSecurityConfig); // social 配置 }