List of usage examples for org.springframework.web.util UriComponentsBuilder fromUri
public static UriComponentsBuilder fromUri(URI uri)
From source file:org.cloudfoundry.identity.uaa.mock.token.TokenMvcMockTests.java
@Test public void invalidScopeErrorMessageIsNotShowingAllUserScopes() throws Exception { String clientId = "testclient" + generator.generate(); String scopes = "openid,password.write,cloud_controller.read,scim.userids,password.write,something.else"; setUpClients(clientId, scopes, scopes, "authorization_code", true); String username = "testuser" + generator.generate(); ScimUser developer = setUpUser(username, "openid", OriginKeys.UAA, IdentityZoneHolder.getUaaZone().getId()); MockHttpSession session = getAuthenticatedSession(developer); String basicDigestHeaderValue = "Basic " + new String( org.apache.commons.codec.binary.Base64.encodeBase64((clientId + ":" + SECRET).getBytes())); String state = generator.generate(); MockHttpServletRequestBuilder authRequest = get("/oauth/authorize") .header("Authorization", basicDigestHeaderValue).session(session) .param(OAuth2Utils.RESPONSE_TYPE, "code").param(OAuth2Utils.SCOPE, "something.else") .param(OAuth2Utils.STATE, state).param(OAuth2Utils.CLIENT_ID, clientId) .param(OAuth2Utils.REDIRECT_URI, TEST_REDIRECT_URI); MvcResult mvcResult = getMockMvc().perform(authRequest).andExpect(status().is3xxRedirection()).andReturn(); UriComponents locationComponents = UriComponentsBuilder .fromUri(URI.create(mvcResult.getResponse().getHeader("Location"))).build(); MultiValueMap<String, String> queryParams = locationComponents.getQueryParams(); String errorMessage = URIUtil .encodeQuery("[something.else] is invalid. This user is not allowed any of the requested scopes"); assertTrue(!queryParams.containsKey("scope")); assertEquals(errorMessage, queryParams.getFirst("error_description")); }
From source file:org.mule.modules.wechat.WechatConnector.java
/** * Verify validity of the URL//from w ww .j a v a2 s.c o m * <br><a href="http://admin.wechat.com/wiki/index.php?title=Getting_Started#Step_2._Verify_validity_of_the_URL">http://admin.wechat.com/wiki/index.php?title=Getting_Started#Step_2._Verify_validity_of_the_URL</a> * * @param uri URI sent by WeChat Official Account Admin System * @return The developer's backend system should return the echostr parameter value indicating that the request has been successfully received * @throws Exception If anything fails */ @Processor public Object verifyUrl(@Default("#[message.inboundProperties.'http.request.uri']") String uri) throws Exception { String result = ""; MultiValueMap<String, String> parameters = UriComponentsBuilder.fromUri(new URI(uri)).build() .getQueryParams(); if (parameters.containsKey("timestamp") && parameters.containsKey("nonce") && parameters.containsKey("signature")) { String[] arr = { config.getToken(), parameters.get("timestamp").get(0), parameters.get("nonce").get(0) }; Arrays.sort(arr); String tmpStr = String.join("", arr); tmpStr = DigestUtils.sha1Hex(tmpStr); if (tmpStr.equals(parameters.get("signature").get(0))) { if (parameters.containsKey("echostr")) { result = parameters.get("echostr").get(0); } } } return result; }
From source file:org.springframework.bus.runner.adapter.discovery.DiscoveryClientChannelLocator.java
private URI pickUrl(List<ServiceInstance> instances) { return UriComponentsBuilder.fromUri(instances.get(new Random().nextInt(instances.size())).getUri()) .path("channels").build().toUri(); }
From source file:org.springframework.cloud.dataflow.server.controller.support.MetricStore.java
/** * Instantiates a new metric store.// w w w . j a v a 2 s . com * * @param metricsProperties the metrics properties */ public MetricStore(MetricsProperties metricsProperties) { this.metricsProperties = metricsProperties; ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.registerModule(new Jackson2HalModule()); MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter(); messageConverter.setSupportedMediaTypes(MediaType.parseMediaTypes("application/hal+json")); messageConverter.setObjectMapper(mapper); restTemplate = new RestTemplate(Arrays.asList(messageConverter)); final MetricsProperties.Collector collector = metricsProperties.getCollector(); String baseURI = collector.getUri(); if (StringUtils.hasText(baseURI)) { try { URI uri = new URI(baseURI); this.collectorEndpoint = UriComponentsBuilder.fromUri(uri).path("/collector/metrics/streams") .build().toString(); logger.info("Metrics Collector URI = [" + collectorEndpoint + "]"); validateUsernamePassword(collector.getUsername(), collector.getPassword()); if (StringUtils.hasText(collector.getUsername()) && StringUtils.hasText(collector.getPassword())) { this.restTemplate.setRequestFactory(HttpClientConfigurer.create(new URI(collectorEndpoint)) .basicAuthCredentials(collector.getUsername(), collector.getPassword()) .skipTlsCertificateVerification(collector.isSkipSslValidation()) .buildClientHttpRequestFactory()); logger.debug("Configured basic security for Metrics Collector endpoint"); } else { logger.debug("Not configuring basic security for Metrics Collector endpoint"); } } catch (URISyntaxException e) { logger.warn("Could not parse collector URI, stream metrics monitoring will not be available"); } } else { logger.info("Metrics Collector URI = []"); } }
From source file:org.springframework.cloud.gateway.filter.LoadBalancerClientFilter.java
@Override public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) { URI url = getAttribute(exchange, GATEWAY_REQUEST_URL_ATTR, URI.class); if (url == null || !url.getScheme().equals("lb")) { return chain.filter(exchange); }//from w w w.j a v a2s . c om log.trace("LoadBalancerClientFilter url before: " + url); final ServiceInstance instance = loadBalancer.choose(url.getHost()); if (instance == null) { throw new NotFoundException(""); } URI requestUrl = UriComponentsBuilder.fromUri(url).scheme(instance.isSecure() ? "https" : "http") //TODO: support websockets .host(instance.getHost()).port(instance.getPort()).build(true).toUri(); log.trace("LoadBalancerClientFilter url chosen: " + requestUrl); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl); return chain.filter(exchange); }
From source file:org.springframework.cloud.gateway.filter.WebsocketRoutingFilter.java
private void changeSchemeIfIsWebSocketUpgrade(ServerWebExchange exchange) { // Check the Upgrade URI requestUrl = exchange.getRequiredAttribute(GATEWAY_REQUEST_URL_ATTR); String scheme = requestUrl.getScheme().toLowerCase(); String upgrade = exchange.getRequest().getHeaders().getUpgrade(); // change the scheme if the socket client send a "http" or "https" if ("WebSocket".equalsIgnoreCase(upgrade) && ("http".equals(scheme) || "https".equals(scheme))) { String wsScheme = convertHttpToWs(scheme); URI wsRequestUrl = UriComponentsBuilder.fromUri(requestUrl).scheme(wsScheme).build().toUri(); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, wsRequestUrl); if (log.isTraceEnabled()) { log.trace("changeSchemeTo:[" + wsRequestUrl + "]"); }//from w w w . j av a2 s . c o m } }
From source file:org.springframework.cloud.netflix.ribbon.okhttp.RetryableOkHttpLoadBalancingClient.java
@Override public OkHttpRibbonResponse execute(final OkHttpRibbonRequest ribbonRequest, final IClientConfig configOverride) throws Exception { final LoadBalancedRetryPolicy retryPolicy = loadBalancedRetryPolicyFactory.create(this.getClientName(), this); RetryCallback<OkHttpRibbonResponse, Exception> retryCallback = new RetryCallback<OkHttpRibbonResponse, Exception>() { @Override// w w w. j av a 2 s. com public OkHttpRibbonResponse doWithRetry(RetryContext context) throws Exception { //on retries the policy will choose the server and set it in the context //extract the server and update the request being made OkHttpRibbonRequest newRequest = ribbonRequest; if (context instanceof LoadBalancedRetryContext) { ServiceInstance service = ((LoadBalancedRetryContext) context).getServiceInstance(); if (service != null) { //Reconstruct the request URI using the host and port set in the retry context newRequest = newRequest .withNewUri(new URI(service.getUri().getScheme(), newRequest.getURI().getUserInfo(), service.getHost(), service.getPort(), newRequest.getURI().getPath(), newRequest.getURI().getQuery(), newRequest.getURI().getFragment())); } } if (isSecure(configOverride)) { final URI secureUri = UriComponentsBuilder.fromUri(newRequest.getUri()).scheme("https").build() .toUri(); newRequest = newRequest.withNewUri(secureUri); } OkHttpClient httpClient = getOkHttpClient(configOverride, secure); final Request request = newRequest.toRequest(); Response response = httpClient.newCall(request).execute(); if (retryPolicy.retryableStatusCode(response.code())) { throw new RetryableStatusCodeException(RetryableOkHttpLoadBalancingClient.this.clientName, response.code()); } return new OkHttpRibbonResponse(response, newRequest.getUri()); } }; return this.executeWithRetry(ribbonRequest, retryPolicy, retryCallback); }
From source file:org.springframework.security.oauth2.provider.endpoint.AuthorizationEndpoint.java
private String append(String base, Map<String, ?> query, Map<String, String> keys, boolean fragment) { UriComponentsBuilder template = UriComponentsBuilder.newInstance(); UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(base); URI redirectUri;//from w ww .ja va 2 s .c o m try { // assume it's encoded to start with (if it came in over the wire) redirectUri = builder.build(true).toUri(); } catch (Exception e) { // ... but allow client registrations to contain hard-coded non-encoded values redirectUri = builder.build().toUri(); builder = UriComponentsBuilder.fromUri(redirectUri); } template.scheme(redirectUri.getScheme()).port(redirectUri.getPort()).host(redirectUri.getHost()) .userInfo(redirectUri.getUserInfo()).path(redirectUri.getPath()); if (fragment) { StringBuilder values = new StringBuilder(); if (redirectUri.getFragment() != null) { String append = redirectUri.getFragment(); values.append(append); } for (String key : query.keySet()) { if (values.length() > 0) { values.append("&"); } String name = key; if (keys != null && keys.containsKey(key)) { name = keys.get(key); } values.append(name + "={" + key + "}"); } if (values.length() > 0) { template.fragment(values.toString()); } UriComponents encoded = template.build().expand(query).encode(); builder.fragment(encoded.getFragment()); } else { for (String key : query.keySet()) { String name = key; if (keys != null && keys.containsKey(key)) { name = keys.get(key); } template.queryParam(name, "{" + key + "}"); } template.fragment(redirectUri.getFragment()); UriComponents encoded = template.build().expand(query).encode(); builder.query(encoded.getQuery()); } return builder.build().toUriString(); }
From source file:ru.org.linux.topic.TagTopicListController.java
private static String buildTagUri(String tag, int section, int offset) { UriComponentsBuilder builder = UriComponentsBuilder.fromUri(TAG_URI_TEMPLATE.expand(tag)); if (section != 0) { builder.queryParam("section", section); }/*from w w w. j a v a 2s. c om*/ if (offset != 0) { builder.queryParam("offset", offset); } return builder.build().toUriString(); }
From source file:ru.org.linux.user.AddPhotoController.java
@RequestMapping(value = "/addphoto.jsp", method = RequestMethod.POST) @PreAuthorize("hasRole('ROLE_ANONYMOUS')") public ModelAndView addPhoto(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception { if (file == null || file.isEmpty()) { return new ModelAndView("addphoto", "error", " "); }/*from w ww . ja v a 2 s. com*/ try { File uploadedFile = File.createTempFile("userpic", "", new File(configuration.getPathPrefix() + "/linux-storage/tmp/")); file.transferTo(uploadedFile); UserService.checkUserpic(uploadedFile); String extension = ImageInfo.detectImageType(uploadedFile); Random random = new Random(); String photoname; File photofile; do { photoname = Integer.toString(AuthUtil.getCurrentUser().getId()) + ':' + random.nextInt() + '.' + extension; photofile = new File(configuration.getHTMLPathPrefix() + "/photos", photoname); } while (photofile.exists()); if (!uploadedFile.renameTo(photofile)) { logger.warn("Can't move photo to " + photofile); throw new ScriptErrorException("Can't move photo: internal error"); } userDao.setPhoto(AuthUtil.getCurrentUser(), photoname); logger.info("? ? " + AuthUtil.getCurrentUser().getNick()); return new ModelAndView(new RedirectView(UriComponentsBuilder .fromUri(PROFILE_NOCACHE_URI_TEMPLATE.expand(AuthUtil.getCurrentUser().getNick())) .queryParam("nocache", Integer.toString(random.nextInt()) + "=").build().encode().toString())); } catch (IOException ex) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView("addphoto", "error", ex.getMessage()); } catch (BadImageException ex) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView("addphoto", "error", ex.getMessage()); } catch (UserErrorException ex) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView("addphoto", "error", ex.getMessage()); } }