| | |
| | | import org.keycloak.models.KeycloakSession; |
| | | import org.keycloak.models.KeycloakUriInfo; |
| | | import org.keycloak.models.RealmModel; |
| | | import org.keycloak.protocol.oidc.OIDCLoginProtocol; |
| | | import org.keycloak.services.Urls; |
| | | import org.keycloak.services.util.ResolveRelative; |
| | | |
| | |
| | | |
| | | private static Set<String> getValidateRedirectUris(KeycloakSession session) { |
| | | return session.getContext().getRealm().getClientsStream() |
| | | .filter(ClientModel::isEnabled) |
| | | .filter(client -> client.isEnabled() && OIDCLoginProtocol.LOGIN_PROTOCOL.equals(client.getProtocol()) && !client.isBearerOnly() && (client.isStandardFlowEnabled() || client.isImplicitFlowEnabled())) |
| | | .map(c -> resolveValidRedirects(session, c.getRootUrl(), c.getRedirectUris())) |
| | | .flatMap(Collection::stream) |
| | | .collect(Collectors.toSet()); |
| | | } |
| | | |
| | | private static String verifyRedirectUri(KeycloakSession session, String rootUrl, String redirectUri, Set<String> validRedirects, boolean requireRedirectUri) { |
| | | public static String verifyRedirectUri(KeycloakSession session, String rootUrl, String redirectUri, Set<String> validRedirects, boolean requireRedirectUri) { |
| | | KeycloakUriInfo uriInfo = session.getContext().getUri(); |
| | | RealmModel realm = session.getContext().getRealm(); |
| | | |