1   package com.atlassian.seraph.elevatedsecurity;
2   
3   import com.atlassian.seraph.config.SecurityConfig;
4   import junit.framework.Assert;
5   
6   import java.util.Map;
7   import javax.servlet.http.HttpServletRequest;
8   
9   /**
10   * Ths guy can help when testing that a @{link ElevatedSecurityGuard} was called
11  */
12  public class CountingElevatedSecurityGuard implements ElevatedSecurityGuard
13  {
14      private final boolean performCheck;
15      private final String expectedUserName;
16      private int failedCount = 0;
17      private int successCount = 0;
18  
19      public CountingElevatedSecurityGuard(final boolean performCheck, final String expectedUserName)
20      {
21          this.performCheck = performCheck;
22          this.expectedUserName = expectedUserName;
23      }
24  
25      public boolean performElevatedSecurityCheck(final HttpServletRequest httpServletRequest, final String userName)
26      {
27          Assert.assertEquals(expectedUserName, userName);
28          return performCheck;
29      }
30  
31      public void onFailedLoginAttempt(final HttpServletRequest httpServletRequest, final String userName)
32      {
33          failedCount++;
34      }
35  
36      public void onSuccessfulLoginAttempt(final HttpServletRequest httpServletRequest, final String userName)
37      {
38          successCount++;
39      }
40  
41      public void init(final Map<String, String> params, final SecurityConfig config)
42      {
43      }
44  
45      public int getFailedCount()
46      {
47          return failedCount;
48      }
49  
50      public int getSuccessCount()
51      {
52          return successCount;
53      }
54  }