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
15 public class SalAuthenticationContext implements AuthenticationContext {
16 private final UserManager userManager;
17
18 public SalAuthenticationContext(final UserManager userManager) {
19 this.userManager = Preconditions.checkNotNull(userManager);
20 }
21
22 public Principal getPrincipal() {
23 final String userName = getUserName();
24 return userName != null ? new SalPrincipal(userName) : null;
25 }
26
27 public boolean isAuthenticated() {
28 return getUserName() != null;
29 }
30
31 private String getUserName() {
32 return userManager.getRemoteUsername(ServletUtils.getHttpServletRequest());
33 }
34
35 private static class SalPrincipal implements Principal {
36 private final String userName;
37
38 SalPrincipal(String userName) {
39 this.userName = Preconditions.checkNotNull(userName);
40 }
41
42 public String getName() {
43 return userName;
44 }
45
46 @Override
47 public int hashCode() {
48 return userName.hashCode();
49 }
50
51 @Override
52 public boolean equals(Object obj) {
53 return obj != null && (obj instanceof SalPrincipal) && ((SalPrincipal) obj).userName.equals(userName);
54 }
55
56 @Override
57 public String toString() {
58 return userName;
59 }
60 }
61 }