Project

General

Profile

Download (1.71 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.ui;
2

    
3
import java.util.logging.Logger;
4

    
5
import org.springframework.security.core.Authentication;
6

    
7
import com.vaadin.navigator.Navigator;
8
import com.vaadin.server.VaadinRequest;
9
import com.vaadin.server.VaadinSession;
10
import com.vaadin.ui.UI;
11

    
12
import eu.etaxonomy.cdm.vaadin.presenter.AuthenticationPresenter;
13
import eu.etaxonomy.cdm.vaadin.view.AuthenticationView;
14

    
15
public abstract class AbstractAuthenticatedUI extends UI {
16

    
17
	/**
18
	 *
19
	 */
20
	private static final long serialVersionUID = 1L;
21

    
22
	Navigator navigator;
23

    
24
	private static final String AUTHENTICATION_VIEW = "abstractAuthenticatedUI";
25

    
26
	private boolean ignoreAuthentication = false;
27

    
28
	private final static Logger logger =
29
			Logger.getLogger(AbstractAuthenticatedUI.class.getName());
30

    
31
	@Override
32
	protected void init(VaadinRequest request) {
33

    
34
        // Create a navigator to control the views
35
        navigator = new Navigator(this, this);
36

    
37
        AuthenticationView av = new AuthenticationView();
38
        navigator.addView(AUTHENTICATION_VIEW, av);
39

    
40

    
41
        new AuthenticationPresenter(av);
42
        // Create and register the views
43
        Authentication authentication = (Authentication) VaadinSession.getCurrent().getAttribute("authentication");
44

    
45
        doInit();
46

    
47
        if(ignoreAuthentication || (authentication != null && authentication.isAuthenticated())) {
48
        	UI.getCurrent().getNavigator().navigateTo(getFirstViewName());
49
        } else {
50
        	UI.getCurrent().getNavigator().navigateTo(AUTHENTICATION_VIEW);
51
        }
52
	}
53

    
54
	protected abstract void doInit();
55

    
56
	public abstract String getFirstViewName();
57

    
58
	public void setIgnoreAuthentication(boolean ignoreAuthentication) {
59
	    this.ignoreAuthentication = ignoreAuthentication;
60
	}
61

    
62
}
(1-1/4)