Example usage for org.springframework.web.servlet.support ServletUriComponentsBuilder replaceQuery

List of usage examples for org.springframework.web.servlet.support ServletUriComponentsBuilder replaceQuery

Introduction

In this page you can find the example usage for org.springframework.web.servlet.support ServletUriComponentsBuilder replaceQuery.

Prototype

@Override
public UriComponentsBuilder replaceQuery(@Nullable String query) 

Source Link

Document

Set the query of this builder overriding all existing query parameters.

Usage

From source file:org.meruvian.yama.webapp.interceptor.OAuth2ClientContextInterceptor.java

/**
 * Calculate the current URI given the request.
 * //from   w  ww  .  j  a v a 2 s  . c o m
 * @param request The request.
 * @return The current uri.
 */
protected String calculateCurrentUri(HttpServletRequest request) throws UnsupportedEncodingException {
    ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequest(request);
    // Now work around SPR-10172...
    String queryString = request.getQueryString();
    boolean legalSpaces = queryString != null && queryString.contains("+");
    if (legalSpaces) {
        builder.replaceQuery(queryString.replace("+", "%20"));
    }
    UriComponents uri = null;
    try {
        uri = builder.replaceQueryParam("code").build(true);
    } catch (IllegalArgumentException ex) {
        // ignore failures to parse the url (including query string). does't make sense
        // for redirection purposes anyway.
        return null;
    }
    String query = uri.getQuery();
    if (legalSpaces) {
        query = query.replace("%20", "+");
    }
    return ServletUriComponentsBuilder.fromUri(uri.toUri()).replaceQuery(query).build().toString();
}