Browse Source

Changed getting redirectUri

pull/3557/head
vzikratyi 6 years ago
parent
commit
1f1cc84a92
  1. 20
      application/src/main/java/org/thingsboard/server/config/CustomOAuth2AuthorizationRequestResolver.java

20
application/src/main/java/org/thingsboard/server/config/CustomOAuth2AuthorizationRequestResolver.java

@ -190,17 +190,33 @@ public class CustomOAuth2AuthorizationRequestResolver implements OAuth2Authoriza
uriVariables.put("action", action == null ? "" : action);
return UriComponentsBuilder.fromUriString(getRedirectUri(request))
String redirectUri = getRedirectUri(request);
log.trace("Redirect URI - {}.", redirectUri);
return UriComponentsBuilder.fromUriString(redirectUri)
.buildAndExpand(uriVariables)
.toUriString();
}
private String getRedirectUri(HttpServletRequest request) {
String loginProcessingUri = oauth2Configuration != null ? oauth2Configuration.getLoginProcessingUrl() : DEFAULT_LOGIN_PROCESSING_URI;
String baseUrl= MiscUtils.constructBaseUrl(request);
String scheme = MiscUtils.getScheme(request);
String domainName = MiscUtils.getDomainName(request);
int port = MiscUtils.getPort(request);
String baseUrl = scheme + "://" + domainName;
if (needsPort(scheme, port)){
baseUrl += ":" + port;
}
return baseUrl + loginProcessingUri;
}
private boolean needsPort(String scheme, int port) {
boolean isHttpDefault = "http".equals(scheme.toLowerCase()) && port == 80;
boolean isHttpsDefault = "https".equals(scheme.toLowerCase()) && port == 443;
return !isHttpDefault && !isHttpsDefault;
}
/**
* Creates nonce and its hash for use in OpenID Connect 1.0 Authentication Requests.
*

Loading…
Cancel
Save