Example usage for org.springframework.web.util UriComponentsBuilder scheme

List of usage examples for org.springframework.web.util UriComponentsBuilder scheme

Introduction

In this page you can find the example usage for org.springframework.web.util UriComponentsBuilder scheme.

Prototype

String scheme

To view the source code for org.springframework.web.util UriComponentsBuilder scheme.

Click Source Link

Usage

From source file:org.mitre.discovery.util.WebfingerURLNormalizer.java

/**
 * Normalize the resource string as per OIDC Discovery.
 * @param identifier/*from  w  w  w  .  java  2s  .  c o m*/
 * @return the normalized string, or null if the string can't be normalized
 */
public static UriComponents normalizeResource(String identifier) {
    // try to parse the URI
    // NOTE: we can't use the Java built-in URI class because it doesn't split the parts appropriately

    if (Strings.isNullOrEmpty(identifier)) {
        logger.warn("Can't normalize null or empty URI: " + identifier);
        return null; // nothing we can do
    } else {

        //UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(identifier);
        UriComponentsBuilder builder = UriComponentsBuilder.newInstance();

        Matcher m = pattern.matcher(identifier);
        if (m.matches()) {
            builder.scheme(m.group(2));
            builder.userInfo(m.group(6));
            builder.host(m.group(8));
            String port = m.group(10);
            if (!Strings.isNullOrEmpty(port)) {
                builder.port(Integer.parseInt(port));
            }
            builder.path(m.group(11));
            builder.query(m.group(13));
            builder.fragment(m.group(15)); // we throw away the hash, but this is the group it would be if we kept it
        } else {
            // doesn't match the pattern, throw it out
            logger.warn("Parser couldn't match input: " + identifier);
            return null;
        }

        UriComponents n = builder.build();

        if (Strings.isNullOrEmpty(n.getScheme())) {
            if (!Strings.isNullOrEmpty(n.getUserInfo()) && Strings.isNullOrEmpty(n.getPath())
                    && Strings.isNullOrEmpty(n.getQuery()) && n.getPort() < 0) {

                // scheme empty, userinfo is not empty, path/query/port are empty
                // set to "acct" (rule 2)
                builder.scheme("acct");

            } else {
                // scheme is empty, but rule 2 doesn't apply
                // set scheme to "https" (rule 3)
                builder.scheme("https");
            }
        }

        // fragment must be stripped (rule 4)
        builder.fragment(null);

        return builder.build();
    }

}

From source file:org.awesomeagile.webapp.config.SslRedirectConfig.java

@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
    return new TomcatEmbeddedServletContainerFactory() {
        @Override//from   w ww  .  j  a v  a  2  s. co  m
        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
            Server server = tomcat.getServer();

            Service service = new StandardService();
            service.setName("ssl-redirect-service");
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setPort(sslRedirectPort);
            service.addConnector(connector);
            server.addService(service);

            Engine engine = new StandardEngine();
            service.setContainer(engine);

            Host host = new StandardHost();
            host.setName("ssl-redirect-host");
            engine.addChild(host);
            engine.setDefaultHost(host.getName());

            Context context = new StandardContext();
            context.addLifecycleListener(new Tomcat.FixContextListener());
            context.setName("ssl-redirect-context");
            context.setPath("");
            host.addChild(context);

            Wrapper wrapper = context.createWrapper();
            wrapper.setServlet(new HttpServlet() {
                @Override
                public void service(HttpServletRequest req, HttpServletResponse res)
                        throws ServletException, IOException {
                    ServletServerHttpRequest r = new ServletServerHttpRequest(req);
                    UriComponentsBuilder b = UriComponentsBuilder.fromHttpRequest(r);
                    b.scheme("https");
                    b.port(null);
                    res.sendRedirect(b.toUriString());
                }
            });
            wrapper.setName("ssl-redirect-servlet");
            context.addChild(wrapper);
            context.addServletMapping("/", wrapper.getName());

            return super.getTomcatEmbeddedServletContainer(tomcat);
        }
    };
}

From source file:com.example.securelogin.domain.service.passwordreissue.PasswordReissueServiceImpl.java

@Override
public String createAndSendReissueInfo(String username) {

    String rowSecret = passwordGenerator.generatePassword(10, passwordGenerationRules);

    if (!accountSharedService.exists(username)) {
        return rowSecret;
    }/* w ww.jav a 2s. c  o  m*/

    Account account = accountSharedService.findOne(username);

    String token = UUID.randomUUID().toString();

    LocalDateTime expiryDate = dateFactory.newTimestamp().toLocalDateTime().plusSeconds(tokenLifeTimeSeconds);

    PasswordReissueInfo info = new PasswordReissueInfo();
    info.setUsername(username);
    info.setToken(token);
    info.setSecret(passwordEncoder.encode(rowSecret));
    info.setExpiryDate(expiryDate);

    passwordReissueInfoRepository.create(info);

    UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance();
    uriBuilder.scheme(protocol).host(host).port(port).path(contextPath).pathSegment("reissue")
            .pathSegment("resetpassword").queryParam("form").queryParam("token", info.getToken());
    String passwordResetUrl = uriBuilder.build().toString();

    mailSharedService.send(account.getEmail(), passwordResetUrl);

    return rowSecret;

}

From source file:com.wavemaker.tools.deployment.tomcat.TomcatManager.java

private UriComponentsBuilder newUriBuilder() {
    UriComponentsBuilder uri = UriComponentsBuilder.newInstance();
    uri.scheme("http");
    uri.host(this.host).port(this.port);
    return uri;// www. ja v  a  2 s  .  c  om
}

From source file:com.cloud.baremetal.networkservice.Force10BaremetalSwitchBackend.java

private String buildLink(String switchIp, String path) {
    UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
    builder.scheme("http");
    builder.host(switchIp);// w  ww .j a v a  2s.  c  om
    builder.port(8008);
    builder.path(path);
    return builder.build().toUriString();
}

From source file:org.joyrest.oauth2.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;//w ww.j  av a  2s .  c  om
    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 (nonNull(keys) && 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: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  w w  . j ava  2s . 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:tds.student.web.backing.DialogFrameBacking.java

private String getContent(long bankKey, long itemKey) {
    try {//from   ww  w. j  a v  a2 s.  co  m
        HttpServletRequest request = HttpContext.getCurrentContext().getRequest();
        final UriComponentsBuilder uriBuilder = UriComponentsBuilder
                .fromHttpUrl(request.getRequestURL().toString().replace("DialogFrame.aspx",
                        "API/DialogFrame.axd/getContent"))
                .queryParam("language", StudentContext.getLanguage()).queryParam("bankKey", bankKey)
                .queryParam("itemKey", itemKey);

        if (isNotBlank(request.getHeader(X_FORWARDED_HOST))) {
            uriBuilder.host(request.getHeader(X_FORWARDED_HOST));
        }
        if (isNotBlank(request.getHeader(X_FORWARDED_PORT))) {
            uriBuilder.port(Integer.valueOf(request.getHeader(X_FORWARDED_PORT), 10));
        }
        if (isNotBlank(request.getHeader(X_FORWARDED_PROTOCOL))) {
            uriBuilder.scheme(request.getHeader(X_FORWARDED_PROTOCOL));
        }

        if (_logger.isDebugEnabled()) {
            _logger.debug(
                    "REST API URL for getting Dialog Frame Content :: " + uriBuilder.build().toUriString());
        }
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));
        HttpEntity<Object> httpEntity = new HttpEntity<Object>(headers);
        GenericRestAPIClient restApiClient = new GenericRestAPIClient(uriBuilder.build().toUriString());
        ResponseEntity<String> responseEntity = restApiClient.exchange(HttpMethod.GET, httpEntity,
                String.class);

        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            throw new RuntimeException("Failed : HTTP error code : " + responseEntity.getStatusCode());
        }
        if (_logger.isDebugEnabled()) {
            _logger.debug("DialogFrame Content :: " + responseEntity.getBody());
        }

        return responseEntity.getBody().trim();

    } catch (Exception e) {
        _logger.error(e.getMessage(), e);
        return "Error while getting Content";
    }
}