datahub/datahub-frontend/app/controllers/CentralLogoutController.java
RyanHolstien 9422578e41
Revert "chore(deps): upgrade play to remove CVEs (#4864)" (#4868)
This reverts commit 84a026b1263ab91cd4010d905129a279523f413e.
2022-05-06 15:08:35 -07:00

44 lines
1.2 KiB
Java

package controllers;
import com.typesafe.config.Config;
import org.pac4j.play.LogoutController;
import play.mvc.Result;
import javax.inject.Inject;
import java.util.concurrent.ExecutionException;
/**
* Responsible for handling logout logic with oidc providers
*/
public class CentralLogoutController extends LogoutController {
private static final String AUTH_BASE_URL_CONFIG_PATH = "auth.baseUrl";
private static final String DEFAULT_BASE_URL_PATH = "/";
private static Boolean _isOidcEnabled = false;
@Inject
public CentralLogoutController(Config config) {
String _authBaseUrl = config.hasPath(AUTH_BASE_URL_CONFIG_PATH)
? config.getString(AUTH_BASE_URL_CONFIG_PATH)
: DEFAULT_BASE_URL_PATH;
_isOidcEnabled = config.hasPath("auth.oidc.enabled") && config.getBoolean("auth.oidc.enabled");
setDefaultUrl(_authBaseUrl);
setLogoutUrlPattern(_authBaseUrl + ".*");
setLocalLogout(true);
setCentralLogout(true);
}
/**
* logout() method should not be called if oidc is not enabled
*/
public Result executeLogout() throws ExecutionException, InterruptedException {
if (_isOidcEnabled) {
return logout().toCompletableFuture().get();
}
return redirect("/");
}
}