Project

General

Profile

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

    
3
import java.util.logging.Logger;
4

    
5
import com.vaadin.navigator.Navigator;
6
import com.vaadin.server.Page;
7
import com.vaadin.server.VaadinRequest;
8
import com.vaadin.server.VaadinServlet;
9
import com.vaadin.server.VaadinSession;
10
import com.vaadin.spring.navigator.SpringViewProvider;
11
import com.vaadin.ui.UI;
12

    
13
import eu.etaxonomy.cdm.common.URI;
14
import eu.etaxonomy.cdm.vaadin.util.CdmVaadinAuthentication;
15
import eu.etaxonomy.cdm.vaadin.view.AuthenticationView;
16

    
17
/**
18
 * @author c.mathew
19
 * @since 2015
20
 *
21
 * @deprecated Use per View based authentication instead. This is provided by the {@link SpringViewProvider}.
22
 */
23
@Deprecated
24
public abstract class AbstractAuthenticatedUI extends CdmBaseUI {
25

    
26
    private static final long serialVersionUID = 4018850353646930682L;
27

    
28
    private Navigator navigator;
29

    
30
	private static final String AUTHENTICATION_VIEW = "abstractAuthenticatedUI";
31

    
32
	private boolean ignoreAuthentication = false;
33

    
34
	private final static Logger logger =
35
			Logger.getLogger(AbstractAuthenticatedUI.class.getName());
36

    
37
	@Override
38
	protected void init(VaadinRequest request) {
39

    
40
	    super.init(request);
41
        // Create a navigator to control the views
42
        navigator = new Navigator(this, this);
43

    
44
        AuthenticationView av = new AuthenticationView();
45
        navigator.addView(AUTHENTICATION_VIEW, av);
46

    
47

    
48

    
49
        // Create and register the views
50
        CdmVaadinAuthentication cvAuthentication = (CdmVaadinAuthentication) VaadinSession.getCurrent().getAttribute(CdmVaadinAuthentication.KEY);
51

    
52
        doInit(request);
53
        URI uri = new URI(Page.getCurrent().getLocation());
54
        String context = VaadinServlet.getCurrent().getServletContext().getContextPath();
55
        if(ignoreAuthentication || (cvAuthentication != null && cvAuthentication.isAuthenticated(uri, context))) {
56
            if(cvAuthentication != null) {
57
                cvAuthentication.setSecurityContextAuthentication(uri, context);
58
            }
59
            UI.getCurrent().getNavigator().navigateTo(getFirstViewName());
60
        } else {
61
            UI.getCurrent().getNavigator().navigateTo(AUTHENTICATION_VIEW);
62
        }
63
	}
64

    
65
	protected abstract void doInit(VaadinRequest request);
66

    
67
	public abstract String getFirstViewName();
68

    
69
	public void setIgnoreAuthentication(boolean ignoreAuthentication) {
70
	    this.ignoreAuthentication = ignoreAuthentication;
71
	}
72

    
73
}
(1-1/10)