1 package com.atlassian.seraph.auth;
2
3 import com.atlassian.seraph.config.SecurityConfig;
4
5 import java.io.Serializable;
6 import java.security.Principal;
7 import java.util.Map;
8
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12
13
14
15 public abstract class AbstractAuthenticator implements Authenticator, Serializable
16 {
17 private SecurityConfig config;
18
19 public void init(final Map params, final SecurityConfig config)
20 {
21 this.config = config;
22 }
23
24 public void destroy()
25 {}
26
27
28 public abstract boolean isUserInRole(HttpServletRequest request, String role);
29
30 public String getRemoteUser(final HttpServletRequest request)
31 {
32 final Principal user = getUser(request);
33
34 if (user == null)
35 {
36 return null;
37 }
38
39 return user.getName();
40 }
41
42 public Principal getUser(final HttpServletRequest request)
43 {
44 return getUser(request, null);
45 }
46
47 public abstract Principal getUser(HttpServletRequest request, HttpServletResponse response);
48
49 public boolean login(final HttpServletRequest request, final HttpServletResponse response, final String username, final String password) throws AuthenticatorException
50 {
51 return login(request, response, username, password, false);
52
53 }
54
55 public abstract boolean login(HttpServletRequest request, HttpServletResponse response, String username, String password, boolean cookie) throws AuthenticatorException;
56
57 public abstract boolean logout(HttpServletRequest request, HttpServletResponse response) throws AuthenticatorException;
58
59 protected SecurityConfig getConfig()
60 {
61 return config;
62 }
63 }