Class SSOClientFilter

  • All Implemented Interfaces:
    javax.servlet.Filter

    public final class SSOClientFilter
    extends HandleFilter
    implements javax.servlet.Filter
    SSOClientFilter is responsible for checking cookies for an existing session, looking up the details of the user if one is found, and placing this User object into a request attribute. Even if no user is found, it will place an AnonymousUser object in the request.

    It is generally appropriate to map this filter to run for all your application requests, i.e. mapped to "/*". It will know not to run when your ShireServlet or LogoutServlet are requested, as long as these are specified correctly in your sso-config.xml file.

    getUserFromRequest(HttpServletRequest) can be used to conveniently fetch the current User object from the appropriate request attribute.

    • Constructor Detail

      • SSOClientFilter

        public SSOClientFilter()
    • Method Detail

      • init

        public void init​(javax.servlet.FilterConfig ctx)
                  throws javax.servlet.ServletException
        Specified by:
        init in interface javax.servlet.Filter
        Throws:
        javax.servlet.ServletException
      • doFilter

        public void doFilter​(javax.servlet.ServletRequest servletRequest,
                             javax.servlet.ServletResponse servletResponse,
                             javax.servlet.FilterChain filterChain)
                      throws java.io.IOException,
                             javax.servlet.ServletException
        Specified by:
        doFilter in interface javax.servlet.Filter
        Throws:
        java.io.IOException
        javax.servlet.ServletException
      • getUserFromRequest

        public static uk.ac.warwick.userlookup.User getUserFromRequest​(javax.servlet.http.HttpServletRequest req)
        Will always return an AnonymousUser if there is either no config or no user in the request
        Parameters:
        req - The incoming HTTP request
        Returns:
      • getUserKey

        public static java.lang.String getUserKey()
      • getConfig

        public uk.ac.warwick.sso.client.SSOConfiguration getConfig()
        Specified by:
        getConfig in class HandleFilter
      • getHandler

        public uk.ac.warwick.sso.client.SSOHandler getHandler()
        Specified by:
        getHandler in class HandleFilter
      • destroy

        public void destroy()
        Specified by:
        destroy in interface javax.servlet.Filter
      • setDetectAnonymousOnCampusUsers

        public void setDetectAnonymousOnCampusUsers​(boolean detectAnonymousOnCampusUsers)
      • setConfigSuffix

        public void setConfigSuffix​(java.lang.String configSuffix)
      • setHandler

        public void setHandler​(uk.ac.warwick.sso.client.SSOClientHandler handler)
      • setUserLookup

        public void setUserLookup​(uk.ac.warwick.userlookup.UserLookupInterface userLookup)
      • getAaFetcher

        public uk.ac.warwick.sso.client.AttributeAuthorityResponseFetcher getAaFetcher()
      • getConfigSuffix

        public java.lang.String getConfigSuffix()
      • getUserLookup

        public uk.ac.warwick.userlookup.UserLookupInterface getUserLookup()
      • setRedirectToRefreshSession

        public void setRedirectToRefreshSession​(boolean redirectToRefreshSession)
      • setConfigLocation

        public void setConfigLocation​(java.lang.String path)
      • setAaFetcher

        public void setAaFetcher​(uk.ac.warwick.sso.client.AttributeAuthorityResponseFetcher aaFetcher)
      • setConfig

        public void setConfig​(uk.ac.warwick.sso.client.SSOConfiguration _config)