//# 0 errors, 121 messages
//#
/*
    //#privateblogsecurityinterceptor.java:1:1: class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#privateblogsecurityinterceptor.java:1:1: method: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.security;

import org.acegisecurity.intercept.AbstractSecurityInterceptor;
import org.acegisecurity.intercept.InterceptorStatusToken;
import org.acegisecurity.intercept.ObjectDefinitionSource;
import org.acegisecurity.intercept.web.FilterInvocation;
import org.acegisecurity.intercept.web.FilterInvocationDefinitionSource;

import javax.servlet.*;
import java.io.IOException;

/**
 * Specialised FilterSecurityInterceptor that returns its own type of
 * ObjectDefinitionSource. This is acopy-paste job from Acegi's
 * FilterSecurityInterceptor. :-(
 *
 * @author Simon Brown
 */
public class PrivateBlogSecurityInterceptor extends AbstractSecurityInterceptor implements Filter {
    //#privateblogsecurityinterceptor.java:50: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()
    //#privateblogsecurityinterceptor.java:50: Warning: method not available
    //#    -- call on void org.acegisecurity.intercept.AbstractSecurityInterceptor()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()
    //#    unanalyzed callee: void org.acegisecurity.intercept.AbstractSecurityInterceptor()
    //#input(void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()): this
    //#output(void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()): this.observeOncePerRequest
    //#post(void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()): this.observeOncePerRequest == 1

  private static final String FILTER_APPLIED = "__acegi_privateBlogSecurityInterceptor_filterApplied";

  //~ Instance fields ================================================================================================

  private boolean observeOncePerRequest = true;
    //#privateblogsecurityinterceptor.java:56: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor()

  //~ Methods ========================================================================================================

  /**
   * Not used (we rely on IoC container lifecycle services instead)
   */
  public void destroy() {}
    //#privateblogsecurityinterceptor.java:63: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.destroy()
    //#privateblogsecurityinterceptor.java:63: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.destroy()

  /**
   * Method that is actually called by the filter chain. Simply delegates to the {@link
   * #invoke(FilterInvocation)} method.
   *
   * @param request the servlet request
   * @param response the servlet response
   * @param chain the filter chain
   *
   * @throws IOException if the filter chain fails
   * @throws ServletException if the filter chain fails
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
      FilterInvocation fi = new FilterInvocation(request, response, chain);
    //#privateblogsecurityinterceptor.java:78: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.doFilter(ServletRequest, ServletResponse, FilterChain)
    //#privateblogsecurityinterceptor.java:78: Warning: method not available
    //#    -- call on void org.acegisecurity.intercept.web.FilterInvocation(ServletRequest, ServletResponse, FilterChain)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void doFilter(ServletRequest, ServletResponse, FilterChain)
    //#    unanalyzed callee: void org.acegisecurity.intercept.web.FilterInvocation(ServletRequest, ServletResponse, FilterChain)
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): __Descendant_Table[net/sourceforge/pebble/security/PrivateBlogSecurityInterceptor]
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): __Descendant_Table[others]
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): __Dispatch_Table.invoke(Lorg/acegisecurity/intercept/web/FilterInvocation;)V
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): chain
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): request
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): response
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): this
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): this.__Tag
    //#input(void doFilter(ServletRequest, ServletResponse, FilterChain)): this.observeOncePerRequest
    //#pre[5] (void doFilter(ServletRequest, ServletResponse, FilterChain)): this.__Tag == net/sourceforge/pebble/security/PrivateBlogSecurityInterceptor
    //#pre[6] (void doFilter(ServletRequest, ServletResponse, FilterChain)): (soft) init'ed(this.observeOncePerRequest)
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:org.acegisecurity.intercept.web.FilterInvocation:getRequest
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:javax.servlet.ServletRequest:getAttribute
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:org.acegisecurity.intercept.web.FilterInvocation:getChain
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:org.acegisecurity.intercept.web.FilterInvocation:getResponse
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:javax.servlet.FilterChain:doFilter
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:javax.servlet.ServletRequest:setAttribute
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:org.acegisecurity.intercept.AbstractSecurityInterceptor:beforeInvocation
    //#unanalyzed(void doFilter(ServletRequest, ServletResponse, FilterChain)): Effects-of-calling:org.acegisecurity.intercept.AbstractSecurityInterceptor:afterInvocation
      invoke(fi);
  }
    //#privateblogsecurityinterceptor.java:80: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.doFilter(ServletRequest, ServletResponse, FilterChain)

  public Class getSecureObjectClass() {
      return FilterInvocation.class;
    //#privateblogsecurityinterceptor.java:83: method: Class net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.getSecureObjectClass()
    //#output(Class getSecureObjectClass()): return_value
    //#post(Class getSecureObjectClass()): return_value == &org.acegisecurity.intercept.web.FilterInvocation.__Class_Obj
    //#privateblogsecurityinterceptor.java:83: end of method: Class net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.getSecureObjectClass()
  }

  /**
   * Not used (we rely on IoC container lifecycle services instead)
   *
   * @param arg0 ignored
   *
   * @throws ServletException never thrown
   */
  public void init(FilterConfig arg0) throws ServletException {}
    //#privateblogsecurityinterceptor.java:93: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.init(FilterConfig)
    //#privateblogsecurityinterceptor.java:93: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.init(FilterConfig)

  public void invoke(FilterInvocation fi) throws IOException, ServletException {
      if ((fi.getRequest() != null) && (fi.getRequest().getAttribute(FILTER_APPLIED) != null)
    //#privateblogsecurityinterceptor.java:96: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.invoke(FilterInvocation)
    //#privateblogsecurityinterceptor.java:96: Warning: method not available
    //#    -- call on ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#input(void invoke(FilterInvocation)): fi
    //#input(void invoke(FilterInvocation)): java.lang.Boolean.TRUE
    //#input(void invoke(FilterInvocation)): this
    //#input(void invoke(FilterInvocation)): this.observeOncePerRequest
    //#pre[1] (void invoke(FilterInvocation)): fi != null
    //#pre[3] (void invoke(FilterInvocation)): (soft) init'ed(this.observeOncePerRequest)
    //#presumption(void invoke(FilterInvocation)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getChain(...)@100 != null
    //#presumption(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getChain(...)@110 != null
    //#presumption(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getRequest(...)@104 != null
    //#presumption(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getRequest(...)@96 != null
    //#test_vector(void invoke(FilterInvocation)): this.observeOncePerRequest: {0}, {1}
    //#test_vector(void invoke(FilterInvocation)): javax.servlet.ServletRequest:getAttribute(...)@96: Addr_Set{null}, Inverse{null}
    //#test_vector(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getRequest(...)@103: Addr_Set{null}, Inverse{null}
    //#test_vector(void invoke(FilterInvocation)): org.acegisecurity.intercept.web.FilterInvocation:getRequest(...)@96: Addr_Set{null}, Inverse{null}
          && observeOncePerRequest) {
          // filter already applied to this request and user wants us to observce
          // once-per-request handling, so don't re-do security checking
          fi.getChain().doFilter(fi.getRequest(), fi.getResponse());
    //#privateblogsecurityinterceptor.java:100: Warning: method not available
    //#    -- call on FilterChain org.acegisecurity.intercept.web.FilterInvocation:getChain()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: FilterChain org.acegisecurity.intercept.web.FilterInvocation:getChain()
    //#privateblogsecurityinterceptor.java:100: Warning: method not available
    //#    -- call on ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#privateblogsecurityinterceptor.java:100: Warning: method not available
    //#    -- call on ServletResponse org.acegisecurity.intercept.web.FilterInvocation:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletResponse org.acegisecurity.intercept.web.FilterInvocation:getResponse()
      } else {
          // first time this request being called, so perform security checking
          if (fi.getRequest() != null) {
    //#privateblogsecurityinterceptor.java:103: Warning: method not available
    //#    -- call on ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
              fi.getRequest().setAttribute(FILTER_APPLIED, Boolean.TRUE);
    //#privateblogsecurityinterceptor.java:104: Warning: method not available
    //#    -- call on ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
          }

          InterceptorStatusToken token = super.beforeInvocation(fi);
    //#privateblogsecurityinterceptor.java:107: Warning: method not available
    //#    -- call on InterceptorStatusToken org.acegisecurity.intercept.AbstractSecurityInterceptor:beforeInvocation(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: InterceptorStatusToken org.acegisecurity.intercept.AbstractSecurityInterceptor:beforeInvocation(Object)

          try {
              fi.getChain().doFilter(fi.getRequest(), fi.getResponse());
    //#privateblogsecurityinterceptor.java:110: Warning: method not available
    //#    -- call on FilterChain org.acegisecurity.intercept.web.FilterInvocation:getChain()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: FilterChain org.acegisecurity.intercept.web.FilterInvocation:getChain()
    //#privateblogsecurityinterceptor.java:110: Warning: method not available
    //#    -- call on ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletRequest org.acegisecurity.intercept.web.FilterInvocation:getRequest()
    //#privateblogsecurityinterceptor.java:110: Warning: method not available
    //#    -- call on ServletResponse org.acegisecurity.intercept.web.FilterInvocation:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: ServletResponse org.acegisecurity.intercept.web.FilterInvocation:getResponse()
          } finally {
              super.afterInvocation(token, null);
    //#privateblogsecurityinterceptor.java:112: Warning: method not available
    //#    -- call on Object org.acegisecurity.intercept.AbstractSecurityInterceptor:afterInvocation(InterceptorStatusToken, Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
    //#    method: void invoke(FilterInvocation)
    //#    unanalyzed callee: Object org.acegisecurity.intercept.AbstractSecurityInterceptor:afterInvocation(InterceptorStatusToken, Object)
          }
      }
  }
    //#privateblogsecurityinterceptor.java:115: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.invoke(FilterInvocation)

  /**
   * Indicates whether once-per-request handling will be observed. By default this is <code>true</code>,
   * meaning the <code>FilterSecurityInterceptor</code> will only execute once-per-request. Sometimes users may wish
   * it to execute more than once per request, such as when JSP forwards are being used and filter security is
   * desired on each included fragment of the HTTP request.
   *
   * @return <code>true</code> (the default) if once-per-request is honoured, otherwise <code>false</code> if
   *         <code>FilterSecurityInterceptor</code> will enforce authorizations for each and every fragment of the
   *         HTTP request.
   */
  public boolean isObserveOncePerRequest() {
      return observeOncePerRequest;
    //#privateblogsecurityinterceptor.java:128: method: bool net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.isObserveOncePerRequest()
    //#input(bool isObserveOncePerRequest()): this
    //#input(bool isObserveOncePerRequest()): this.observeOncePerRequest
    //#output(bool isObserveOncePerRequest()): return_value
    //#pre[2] (bool isObserveOncePerRequest()): init'ed(this.observeOncePerRequest)
    //#post(bool isObserveOncePerRequest()): return_value == this.observeOncePerRequest
    //#post(bool isObserveOncePerRequest()): init'ed(return_value)
    //#privateblogsecurityinterceptor.java:128: end of method: bool net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.isObserveOncePerRequest()
  }

  public void setObserveOncePerRequest(boolean observeOncePerRequest) {
      this.observeOncePerRequest = observeOncePerRequest;
    //#privateblogsecurityinterceptor.java:132: method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.setObserveOncePerRequest(bool)
    //#input(void setObserveOncePerRequest(bool)): observeOncePerRequest
    //#input(void setObserveOncePerRequest(bool)): this
    //#output(void setObserveOncePerRequest(bool)): this.observeOncePerRequest
    //#post(void setObserveOncePerRequest(bool)): this.observeOncePerRequest == observeOncePerRequest
    //#post(void setObserveOncePerRequest(bool)): init'ed(this.observeOncePerRequest)
  }
    //#privateblogsecurityinterceptor.java:133: end of method: void net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.setObserveOncePerRequest(bool)

  public FilterInvocationDefinitionSource getObjectDefinitionSource() {
    return new PrivateBlogFilterInvocationDefinitionSource();
    //#privateblogsecurityinterceptor.java:136: method: FilterInvocationDefinitionSource net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.getObjectDefinitionSource()
    //#output(FilterInvocationDefinitionSource getObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(getObjectDefinitionSource#1) num objects
    //#output(FilterInvocationDefinitionSource getObjectDefinitionSource()): return_value.__Tag
    //#output(FilterInvocationDefinitionSource getObjectDefinitionSource()): return_value
    //#new obj(FilterInvocationDefinitionSource getObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(getObjectDefinitionSource#1)
    //#post(FilterInvocationDefinitionSource getObjectDefinitionSource()): return_value == &new PrivateBlogFilterInvocationDefinitionSource(getObjectDefinitionSource#1)
    //#post(FilterInvocationDefinitionSource getObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(getObjectDefinitionSource#1) num objects == 1
    //#post(FilterInvocationDefinitionSource getObjectDefinitionSource()): return_value.__Tag == net/sourceforge/pebble/security/PrivateBlogFilterInvocationDefinitionSource
    //#privateblogsecurityinterceptor.java:136: end of method: FilterInvocationDefinitionSource net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.getObjectDefinitionSource()
  }

  public ObjectDefinitionSource obtainObjectDefinitionSource() {
    return new PrivateBlogFilterInvocationDefinitionSource();
    //#privateblogsecurityinterceptor.java:140: method: ObjectDefinitionSource net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.obtainObjectDefinitionSource()
    //#output(ObjectDefinitionSource obtainObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(obtainObjectDefinitionSource#1) num objects
    //#output(ObjectDefinitionSource obtainObjectDefinitionSource()): return_value.__Tag
    //#output(ObjectDefinitionSource obtainObjectDefinitionSource()): return_value
    //#new obj(ObjectDefinitionSource obtainObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(obtainObjectDefinitionSource#1)
    //#post(ObjectDefinitionSource obtainObjectDefinitionSource()): return_value == &new PrivateBlogFilterInvocationDefinitionSource(obtainObjectDefinitionSource#1)
    //#post(ObjectDefinitionSource obtainObjectDefinitionSource()): new PrivateBlogFilterInvocationDefinitionSource(obtainObjectDefinitionSource#1) num objects == 1
    //#post(ObjectDefinitionSource obtainObjectDefinitionSource()): return_value.__Tag == net/sourceforge/pebble/security/PrivateBlogFilterInvocationDefinitionSource
    //#privateblogsecurityinterceptor.java:140: end of method: ObjectDefinitionSource net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.obtainObjectDefinitionSource()
  }

}    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Descendant_Table[net/sourceforge/pebble/security/PrivateBlogSecurityInterceptor]
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.destroy()V
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.getObjectDefinitionSource()Lorg/acegisecurity/intercept/web/FilterInvocationDefinitionSource;
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.getSecureObjectClass()Ljava/lang/Class;
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.init(Ljavax/servlet/FilterConfig;)V
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.invoke(Lorg/acegisecurity/intercept/web/FilterInvocation;)V
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.isObserveOncePerRequest()Z
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.obtainObjectDefinitionSource()Lorg/acegisecurity/intercept/ObjectDefinitionSource;
    //#output(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.setObserveOncePerRequest(Z)V
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Descendant_Table[net/sourceforge/pebble/security/PrivateBlogSecurityInterceptor] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.destroy()V == &destroy
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V == &doFilter
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.getObjectDefinitionSource()Lorg/acegisecurity/intercept/web/FilterInvocationDefinitionSource; == &getObjectDefinitionSource
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.getSecureObjectClass()Ljava/lang/Class; == &getSecureObjectClass
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.init(Ljavax/servlet/FilterConfig;)V == &init
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.invoke(Lorg/acegisecurity/intercept/web/FilterInvocation;)V == &invoke
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.isObserveOncePerRequest()Z == &isObserveOncePerRequest
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.obtainObjectDefinitionSource()Lorg/acegisecurity/intercept/ObjectDefinitionSource; == &obtainObjectDefinitionSource
    //#post(net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init): __Dispatch_Table.setObserveOncePerRequest(Z)V == &setObserveOncePerRequest
    //#privateblogsecurityinterceptor.java:: end of method: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor.net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor__static_init
    //#privateblogsecurityinterceptor.java:: end of class: net.sourceforge.pebble.security.PrivateBlogSecurityInterceptor
