Package org.vaadin.spring.samples.mvp.ui.component.listener

Source Code of org.vaadin.spring.samples.mvp.ui.component.listener.LogoutLinkListener

package org.vaadin.spring.samples.mvp.ui.component.listener;

import javax.inject.Inject;

import org.springframework.core.env.Environment;
import org.springframework.security.core.context.SecurityContextHolder;
import org.vaadin.spring.UIScope;
import org.vaadin.spring.VaadinComponent;
import org.vaadin.spring.samples.mvp.ui.view.BannerView;

import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;

/**
* Facilitates logout.  Destroys the current session and redirects user to a login page.
* @author Chris Phillipson (fastnsilver@gmail.com)
*
*/
@UIScope
@VaadinComponent
public class LogoutLinkListener implements ClickListener {

  @Inject
  private Environment env;

  @Override
  public void buttonClick(ClickEvent event) {
    SecurityContextHolder.clearContext();
    BannerView banner = (BannerView) event.getComponent().getParent();
    String contextPath = VaadinServlet.getCurrent().getServletContext().getContextPath();
    String urlMapping = env.getProperty("vaadin.servlet.urlMapping");
    String uiPath = urlMapping.substring(0, urlMapping.length() - 2);
    String location = contextPath.concat(uiPath);
    banner.getUI().getPage().setLocation(location);
  }

}
TOP

Related Classes of org.vaadin.spring.samples.mvp.ui.component.listener.LogoutLinkListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.