View Javadoc

1   package org.musicontroller.gui;
2   
3   import org.acegisecurity.Authentication;
4   import org.acegisecurity.context.HttpSessionContextIntegrationFilter;
5   import org.acegisecurity.context.SecurityContext;
6   import org.apache.tapestry.event.PageBeginRenderListener;
7   import org.apache.tapestry.event.PageEvent;
8   import org.apache.tapestry.html.BasePage;
9   import org.apache.tapestry.web.WebSession;
10  import org.musicontroller.security.User;
11  
12  /**
13   * Page that is shown after a successful logon. When rendering, the SessionUserState-object
14   * is updated to contain the user-details.
15   * @author Varienaja
16   * @version $Id: Welcome.java,v 1.1 2010/03/16 18:55:42 varienaja Exp $
17   */
18  public abstract class Welcome extends BasePage implements PageBeginRenderListener {
19  	public abstract void setUser(User user);
20  	public abstract String getWelcomeMessage();
21  	public abstract void setWelcomeMessage(String message);
22  	
23  	public void pageBeginRender(PageEvent ev) {
24  		Authentication auth = null;
25  		
26  		WebSession session = ev.getRequestCycle().getInfrastructure().getRequest().getSession(false);
27  		if (session!=null) {
28  			SecurityContext sc = (SecurityContext) session.getAttribute(HttpSessionContextIntegrationFilter.ACEGI_SECURITY_CONTEXT_KEY);
29  			if (sc!=null) {
30  				 auth = sc.getAuthentication();
31  			}
32  		}
33  		if (auth!=null && auth.getPrincipal() instanceof User) {
34  			User user = (User) auth.getPrincipal();
35  			setUser(user);
36  			setWelcomeMessage("Welcome "+user.getLoginname()+", you have successfully logged on!");
37  		} else {
38  			setWelcomeMessage("You are not logged in.");
39  		}
40  	}
41  	
42  	public abstract User getUser();
43  	
44  	public long getUserid() {		
45  		User user = getUser();
46  		return user==null?-1L:user.getId();
47  	}
48  
49  	public String getPasshash() {		
50  		User user = getUser();
51  		return user==null ? "" : user.getPassword();
52  	}
53  
54  }