Class JiraLoginFilter

  extended by com.atlassian.jira.web.filters.JiraLoginFilter
All Implemented Interfaces:

public class JiraLoginFilter
extends Object
implements javax.servlet.Filter

This Filter implementation is a composite of the Seraph provided LoginFilter and HttpAuthFilter, which will allow HTTP basic Auth and os_username based login.

It can be derived because of the fragile base class pattern in Java but really it because Serpah was never designed to be extended and has package protected classes and other shenanigans that prevent proper derivation. Buts that ok, because this pattern is more unit testable and less fragile! Long live interfaces!

Also as it turns out this class is logically the same as having a HttpAuthFilter follow a LoginFilter in the web.xml. But by making a composite we dont have to rely on one failign to work followed by one working. Instead we make a decision as to which one to call and thn invoke it.

And if we change the login rules in the future, we are in a better position this way in terms of coupling and encapsulation.

Constructor Summary
          This is the production constructor that will be called by the servlet container.
Method Summary
 void destroy()
          Delegates the filter destroy to both filters.
 void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain)
 void init(javax.servlet.FilterConfig filterConfig)
          Delegates the initialisation to both filters.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public JiraLoginFilter()
This is the production constructor that will be called by the servlet container. It is the one that sets up the LoginFilter and HttpAuthFilter

Method Detail


public void doFilter(javax.servlet.ServletRequest servletRequest,
                     javax.servlet.ServletResponse servletResponse,
                     javax.servlet.FilterChain filterChain)
              throws IOException,
Specified by:
doFilter in interface javax.servlet.Filter


public void init(javax.servlet.FilterConfig filterConfig)
          throws javax.servlet.ServletException
Delegates the initialisation to both filters.

Specified by:
init in interface javax.servlet.Filter
filterConfig - the servlet filter config in play
javax.servlet.ServletException - if stuff goes wrong


public void destroy()
Delegates the filter destroy to both filters.

Specified by:
destroy in interface javax.servlet.Filter

Copyright © 2002-2014 Atlassian. All Rights Reserved.