protected String getIssuerId(Message m) { if (issuerId == null) { return new UriInfoImpl(m).getBaseUri().toString(); } return issuerId; }
public UriBuilder getBaseUriBuilder() { return new UriBuilderImpl(getBaseUri()); }
public UriBuilder getBaseUriBuilder() { return new UriBuilderImpl(getBaseUri()); }
private String getAbsolutePathAsString() { String address = getBaseUri().toString(); if (MessageUtils.isRequestor(message)) { return address; } String path = doGetPath(false, false); if (path.startsWith("/") && address.endsWith("/")) { address = address.substring(0, address.length() - 1); } if (!path.isEmpty() && !path.startsWith("/") && !address.endsWith("/")) { address = address + "/"; } return address + path; }
private String getWebAppContext(Message m) { if (addWebAppContext) { if (addEndpointAddressToContext) { return new UriInfoImpl(m).getBaseUri().getRawPath(); } String httpBasePath = (String)m.get("http.base.path"); return URI.create(httpBasePath).getRawPath(); } return "/"; }
private String getAbsolutePathAsString() { String address = getBaseUri().toString(); if (MessageUtils.isRequestor(message)) { return address; } String path = doGetPath(false, false); if (path.startsWith("/") && address.endsWith("/")) { address = address.substring(0, address.length() - 1); } if (!path.isEmpty() && !path.startsWith("/") && !address.endsWith("/")) { address = address + "/"; } return address + path; } }
private int compareByServiceClass(Class<?> clazz1, Class<?> clazz2, Message message) { if (clazz1.equals(clazz2)) return 0; UriInfoImpl uriInfo = new UriInfoImpl(message); String path = uriInfo.getBaseUri().getPath(); path = StringUtils.removeEnd(path, "/"); if (StringUtils.isBlank(path)) return 0; Object servicePath1 = servicePathCache.getUnchecked(clazz1); Object servicePath2 = servicePathCache.getUnchecked(clazz2); if (servicePath1 != nullToken && path.equals(servicePath1)) { return -1; } else if (servicePath2 != nullToken && path.equals(servicePath2)) { return 1; } else if (servicePath1 != nullToken && servicePath2 != nullToken) { return servicePath1.toString().compareTo(servicePath2.toString()); } else { return 0; } } }
@Override public void setRequestUri(URI requestUri) throws IllegalStateException { if (requestUri.isAbsolute()) { String baseUriString = new UriInfoImpl(m).getBaseUri().toString(); String requestUriString = requestUri.toString(); if (!requestUriString.startsWith(baseUriString)) { setRequestUri(requestUri, URI.create("/")); return; } requestUriString = requestUriString.substring(baseUriString.length()); if (requestUriString.isEmpty()) { requestUriString = "/"; } requestUri = URI.create(requestUriString); } doSetRequestUri(requestUri); }
@Override public void setRequestUri(URI requestUri) throws IllegalStateException { if (requestUri.isAbsolute()) { String baseUriString = new UriInfoImpl(m).getBaseUri().toString(); String requestUriString = new UriInfoImpl(m).getBaseUri().toString(); if (!requestUriString.startsWith(baseUriString)) { setRequestUri(requestUri, URI.create("/")); return; } else { requestUriString = requestUriString.substring(baseUriString.length()); if (requestUriString.isEmpty()) { requestUriString = "/"; } requestUri = URI.create(requestUriString); } } doSetRequestUri(requestUri); }
@Override public void filter(ContainerRequestContext context) { Message message = JAXRSUtils.getCurrentMessage(); Form form = readFormData(message); MultivaluedMap<String, String> formData = form.asMap(); String assertion = formData.getFirst(SAML_ELEMENT); handleToken(message, assertion); // redirect if needed String samlRequestURI = formData.getFirst(SAML_RELAY_STATE); if (samlRequestURI != null) { // RelayState may actually represent a reference to a transient local state // containing the actual REQUEST URI client was using before being redirected // back to IDP - at the moment assume it's URI UriInfoImpl ui = new UriInfoImpl(message); if (!samlRequestURI.startsWith(ui.getBaseUri().toString())) { context.abortWith(Response.status(302).location(URI.create(samlRequestURI)).build()); return; } } formData.remove(SAML_ELEMENT); formData.remove(SAML_RELAY_STATE); // restore input stream try { FormUtils.restoreForm(provider, form, message); } catch (Exception ex) { throwFault(ex.getMessage(), ex); } }
@Override public void filter(ContainerRequestContext context) { Message message = JAXRSUtils.getCurrentMessage(); Form form = readFormData(message); MultivaluedMap<String, String> formData = form.asMap(); String assertion = formData.getFirst(SAML_ELEMENT); handleToken(message, assertion); // redirect if needed String samlRequestURI = formData.getFirst(SAML_RELAY_STATE); if (samlRequestURI != null) { // RelayState may actually represent a reference to a transient local state // containing the actual REQUEST URI client was using before being redirected // back to IDP - at the moment assume it's URI UriInfoImpl ui = new UriInfoImpl(message); if (!samlRequestURI.startsWith(ui.getBaseUri().toString())) { context.abortWith(Response.status(302).location(URI.create(samlRequestURI)).build()); return; } } formData.remove(SAML_ELEMENT); formData.remove(SAML_RELAY_STATE); // restore input stream try { FormUtils.restoreForm(provider, form, message); } catch (Exception ex) { throwFault(ex.getMessage(), ex); } }