View Javadoc

1   package org.whatsitcalled.webflange.security;
2   
3   import org.apache.wicket.security.hive.authentication.DefaultSubject;
4   import org.apache.wicket.security.hive.authentication.LoginContext;
5   import org.apache.wicket.security.hive.authentication.Subject;
6   import org.apache.wicket.security.hive.authorization.SimplePrincipal;
7   import org.apache.wicket.security.strategies.LoginException;
8   import org.apache.wicket.util.lang.Objects;
9   
10  public class WebflangeLoginContext extends LoginContext {
11  	private final String username;
12  	private final String password;
13  
14  	/**
15  	 * 
16  	 * Constructor for loging in.
17  	 * 
18  	 * @param username
19  	 * @param password
20  	 */
21  	public WebflangeLoginContext(String username, String password)
22  	{
23  		this.username = username;
24  		this.password = password;
25  	}
26  
27  	/**
28  	 * 
29  	 * Constructor for loging off.
30  	 */
31  	public WebflangeLoginContext()
32  	{
33  		username = null;
34  		password = null;
35  	}
36  
37  	/**
38  	 * @see org.apache.wicket.security.hive.authentication.LoginContext#login()
39  	 */
40  	public Subject login() throws LoginException
41  	{
42  		// irrelevant check
43  		if (username != null && Objects.equal(username, password))
44  		{
45  			DefaultSubject subject = new DefaultSubject();
46  			if ("super".equals(username))
47  			{
48  				subject.addPrincipal(new SimplePrincipal("basic"));
49  			}
50  			return subject;
51  		}
52  		throw new LoginException("Username and password do not match any known user.");
53  	}
54  }