1   package com.atlassian.security.auth.trustedapps.seraph.filter;
2   
3   import com.atlassian.security.auth.trustedapps.filter.AuthenticationListener;
4   import com.atlassian.security.auth.trustedapps.filter.Authenticator;
5   import com.atlassian.seraph.filter.BaseLoginFilter;
6   import com.atlassian.seraph.auth.DefaultAuthenticator;
7   
8   import javax.servlet.http.HttpServletRequest;
9   import javax.servlet.http.HttpServletResponse;
10  
11  /**
12   * Serpah implementation of {@link AuthenticationListener} that adds Seraph request and session attributes on
13   * authentication sucess
14   */
15  public class SeraphAuthenticationListener implements AuthenticationListener
16  {
17      /**
18       * Adds Seraph authentication attribute to the request and session
19       */
20      public void authenticationSuccess(Authenticator.Result result, HttpServletRequest request, HttpServletResponse response)
21      {
22          request.getSession().setAttribute(DefaultAuthenticator.LOGGED_IN_KEY, result.getUser());
23          request.getSession().setAttribute(DefaultAuthenticator.LOGGED_OUT_KEY, null);
24          request.setAttribute(BaseLoginFilter.OS_AUTHSTATUS_KEY, BaseLoginFilter.LOGIN_SUCCESS);
25      }
26  
27      /**
28       * no-op
29       */
30      public void authenticationFailure(Authenticator.Result result, HttpServletRequest request, HttpServletResponse response)
31      {
32      }
33  
34      /**
35       * no-op
36       */
37      public void authenticationError(Authenticator.Result result, HttpServletRequest request, HttpServletResponse response)
38      {
39      }
40  
41      /**
42       * no-op
43       */
44      public void authenticationNotAttempted(HttpServletRequest request, HttpServletResponse response)
45      {
46      }
47  }