ref #7995 invoking Registration.updateStatusAndDate() from RegistrationEditorPresenter
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / view / AuthenticationPresenter.java
1 package eu.etaxonomy.cdm.vaadin.view;
2
3 import java.net.URI;
4
5 import org.springframework.security.authentication.AuthenticationManager;
6 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
7 import org.springframework.security.core.Authentication;
8 import org.springframework.security.core.context.SecurityContextHolder;
9
10 import com.vaadin.server.VaadinSession;
11
12 import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
13 import eu.etaxonomy.cdm.vaadin.util.CdmVaadinAuthentication;
14 import eu.etaxonomy.cdm.vaadin.util.CdmVaadinSessionUtilities;
15
16 public class AuthenticationPresenter implements IAuthenticationComponent.AuthenticationComponentListener{
17
18 @Override
19 public boolean login(URI uri, String context, String userName, String password) {
20
21 UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(userName, password);
22 AuthenticationManager authenticationManager = (AuthenticationManager) CdmSpringContextHelper.getCurrent().getBean("authenticationManager");
23 Authentication authentication = authenticationManager.authenticate(token);
24
25 if(authentication != null && authentication.isAuthenticated()) {
26 SecurityContextHolder.getContext().setAuthentication(authentication);
27 CdmVaadinAuthentication cvAuthentication = (CdmVaadinAuthentication) VaadinSession.getCurrent().getAttribute(CdmVaadinAuthentication.KEY);
28 if(cvAuthentication == null) {
29 cvAuthentication = new CdmVaadinAuthentication();
30 }
31 cvAuthentication.addAuthentication(uri, context, authentication);
32 CdmVaadinSessionUtilities.setCurrentAttribute(CdmVaadinAuthentication.KEY, cvAuthentication);
33 return true;
34 }
35
36 return false;
37 }
38
39 }