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
17
18
19
20
21 public WebflangeLoginContext(String username, String password)
22 {
23 this.username = username;
24 this.password = password;
25 }
26
27
28
29
30
31 public WebflangeLoginContext()
32 {
33 username = null;
34 password = null;
35 }
36
37
38
39
40 public Subject login() throws LoginException
41 {
42
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 }