1 package com.atlassian.plugins.rest.module.security;
2
3 import com.atlassian.plugins.rest.common.security.AuthenticationContext;
4 import com.atlassian.plugins.rest.module.servlet.ServletUtils;
5 import com.atlassian.sal.api.user.UserManager;
6 import com.google.common.base.Preconditions;
7
8 import java.security.Principal;
9
10
11
12
13
14 public class SalAuthenticationContext implements AuthenticationContext
15 {
16 private final UserManager userManager;
17
18 public SalAuthenticationContext(final UserManager userManager)
19 {
20 this.userManager = Preconditions.checkNotNull(userManager);
21 }
22
23 public Principal getPrincipal()
24 {
25 final String userName = getUserName();
26 return userName != null ? new SalPrincipal(userName) : null;
27 }
28
29 public boolean isAuthenticated()
30 {
31 return getUserName() != null;
32 }
33
34 private String getUserName()
35 {
36 return userManager.getRemoteUsername(ServletUtils.getHttpServletRequest());
37 }
38
39 private static class SalPrincipal implements Principal
40 {
41 private final String userName;
42
43 SalPrincipal(String userName)
44 {
45 this.userName = Preconditions.checkNotNull(userName);
46 }
47
48 public String getName()
49 {
50 return userName;
51 }
52
53 @Override
54 public int hashCode()
55 {
56 return userName.hashCode();
57 }
58
59 @Override
60 public boolean equals(Object obj)
61 {
62 return obj != null && (obj instanceof SalPrincipal) && ((SalPrincipal) obj).userName.equals(userName);
63 }
64
65 @Override
66 public String toString()
67 {
68 return userName;
69 }
70 }
71 }