Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
import edu.harvard.iq.dataverse.util.StringUtil;
import edu.harvard.iq.dataverse.util.SystemConfig;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
Expand All @@ -24,6 +25,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
Expand Down Expand Up @@ -222,23 +224,14 @@ private TreeNode getDataverseNode(Dataverse dataverse, TreeNode root, boolean ex
return null;
}
*/
public String logout() {
public void logout() throws IOException {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();

dataverseSession.setUser(null);

String redirectPage = navigationWrapper.getPageFromContext();
try {
redirectPage = URLDecoder.decode(redirectPage, "UTF-8");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(LoginPage.class.getName()).log(Level.SEVERE, null, ex);
redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias();
}

if (StringUtils.isEmpty(redirectPage)) {
redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias();
}

logger.log(Level.INFO, "Sending user to = " + redirectPage);
return redirectPage + (redirectPage.indexOf("?") == -1 ? "?" : "&") + "faces-redirect=true";

String safeDefaultIfKeyNotFound = "https://idp.dev-aws.qdr.org/idp/profile/Logout";
String shibLogoutUrl = settingsService.getValueForKey(SettingsServiceBean.Key.ShibLogoutUrl, safeDefaultIfKeyNotFound);
externalContext.redirect(shibLogoutUrl);
}

private Boolean signupAllowed = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,11 @@ Whether Harvesting (OAI) service is enabled
*/
ShibPassiveLoginEnabled,
/**
* URL for Shibboleth Single Logout
*/
ShibLogoutUrl,

/**
* Whether Export should exclude FieldType.EMAIL
*/
ExcludeEmailFromExport;
Expand Down
3 changes: 2 additions & 1 deletion src/main/webapp/dataverse_header.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@
</h:outputLink>
</li>
<li>
<h:outputLink value="/loginpage.xhtml?#{loginRedirectPage}">
<h:outputLink value="/Shibboleth.sso/Login">
<f:param name="target" value="#{request.contextPath.concat('/shib.xhtml').concat(navigationWrapper.redirectPage)}" />
#{bundle.login}
</h:outputLink>
</li>
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/dataverse_template.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
<script type="text/javascript" defer="defer" src="#{resource['js/dv_rebind_bootstrap_ui.js']}?version=#{systemConfig.getVersion()}"></script>
<script type="text/javascript" defer="defer" src="#{resource['js/owl.carousel.js']}?version=#{systemConfig.getVersion()}"></script>
<script type="text/javascript" defer="defer" src="#{resource['js/jquery.matchHeight.js']}?version=#{systemConfig.getVersion()}"></script>
<script type="text/javascript" defer="defer" src="#{resource['js/jquery.sharrre.js']}?version=#{systemConfig.getVersion()}"></script>
<script type="text/javascript" defer="defer" src="#{resource['js/jquery.sharrre.js']}?version=#{systemConfig.getVersion()}"></script>
<ui:fragment rendered="#{systemConfig.isShibPassiveLoginEnabled()}">
<script type="text/javascript" language="javascript" src="#{resource['js/shib/isPassive.js']}"></script>
</ui:fragment>
Expand Down
24 changes: 24 additions & 0 deletions src/main/webapp/logout.xhtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:jsf="http://xmlns.jcp.org/jsf">

<h:head>
</h:head>

<h:body>
<f:metadata>
<f:viewAction action="#{dataverseHeaderFragment.logout}"/>
</f:metadata>
<ui:composition template="/dataverse_template.xhtml">
<ui:param name="pageTitle" value="Log Out"/>
<ui:param name="showDataverseHeader" value="false"/>
<ui:param name="showMessagePanel" value="#{true}"/>
<ui:define name="body">
</ui:define>
</ui:composition>
</h:body>
</html>