package org.ovirt.engine.core;
import java.net.URLEncoder;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.ovirt.engine.core.utils.EngineLocalConfig;
import org.ovirt.engine.core.uutils.net.URLBuilder;
public class WelcomeContextListener implements ServletContextListener {
private static String moduleScope = "ovirt-app-admin ovirt-app-portal ovirt-ext=auth:sequence-priority=%s";
private static String switchUserScope = "ovirt-app-admin ovirt-app-portal ovirt-ext=auth:sequence-priority=~I";
@Override
public void contextInitialized(ServletContextEvent event) {
try {
String engineUri = EngineLocalConfig.getInstance().getProperty(WelcomeUtils.ENGINE_URI);
String authSequence = EngineLocalConfig.getInstance().getProperty("ENGINE_SSO_AUTH_SEQUENCE_welcome");
event.getServletContext().setAttribute("engine_url", engineUri);
event.getServletContext().setAttribute("sso_logout_url",
new URLBuilder(engineUri, WelcomeUtils.LOGOUT_URI).build());
event.getServletContext().setAttribute("sso_login_url", WelcomeUtils.getLoginUrl(
engineUri,
String.format(moduleScope, authSequence)));
event.getServletContext().setAttribute("sso_switch_user_url", String.format("%s%s?%s=%s",
engineUri,
WelcomeUtils.SWITCH_USER_URI,
WelcomeUtils.SCOPE,
URLEncoder.encode(switchUserScope, WelcomeUtils.UTF8)));
} catch (Exception ex) {
throw new RuntimeException("Unable to initialize Welcome Context", ex);
}
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// empty
}
}