Skip to content

Commit 192e25a

Browse files
committed
Merge branch 'feature/fix-approval-callback-url' into develop
2 parents 7688350 + 23fbe8d commit 192e25a

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

src/main/java/org/apereo/cas/support/oauth/web/views/OAuth20ConsentApprovalViewResolver.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import org.springframework.web.servlet.ModelAndView;
2222

23+
import java.net.URI;
2324
import java.net.URISyntaxException;
2425
import java.util.HashSet;
2526
import java.util.Map;
@@ -139,14 +140,24 @@ protected ModelAndView redirectToApproveView(final JEEContext context, final Osf
139140
*/
140141
protected String getCallbackUrl(final JEEContext context) throws URISyntaxException {
141142
val callbackUrl = context.getFullRequestURL();
143+
val serverPrefix = casProperties.getServer().getPrefix();
144+
if (!callbackUrl.startsWith(serverPrefix)) {
145+
LOGGER.warn("[OAuth ConsentApproval] callback URL [{}] doesn't have the correct server prefix [{}]", callbackUrl, serverPrefix);
146+
} else {
147+
LOGGER.info("[OAuth ConsentApproval] callback URL [{}] uses the correct server prefix [{}]", callbackUrl, serverPrefix);
148+
}
149+
val serverPrefixUrl = new URI(serverPrefix);
142150
val url = new URIBuilder(callbackUrl);
151+
url.setScheme(serverPrefixUrl.getScheme());
152+
url.setHost(serverPrefixUrl.getHost());
153+
url.setPort(-1);
143154
// APPROVAL_PROMPT can be set to any value. It does not have any effect since BYPASS_APPROVAL_PROMPT is present.
144155
// However, setting it to EMPTY is preferred so that it is different from its original values "auto" or "force".
145156
url.setParameter(OsfCasOAuth20Constants.APPROVAL_PROMPT, StringUtils.EMPTY);
146157
url.setParameter(OAuth20Constants.BYPASS_APPROVAL_PROMPT, Boolean.TRUE.toString());
147-
LOGGER.debug("Callback URL for approval submit action: [{}]", callbackUrl);
148-
return url.toString();
149-
158+
val approvalCallbackUrl = url.toString();
159+
LOGGER.info("[OAuth ConsentApproval] modified approval callback URL [{}]", approvalCallbackUrl);
160+
return approvalCallbackUrl;
150161
}
151162

152163
/**

0 commit comments

Comments
 (0)