//# 1 errors, 170 messages
//#
/*
    //#Authenticator.java:1:1: class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#Authenticator.java:1:1: method: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init
 * Copyright 2005 David M Johnson (For RSS and Atom In Action)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.roller.weblogger.webservices.adminprotocol;

import javax.servlet.http.HttpServletRequest;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.config.WebloggerConfig;
import org.apache.roller.weblogger.util.Utilities;

/**
 * TODO
 *
 * @author jtb
 */
abstract class Authenticator {
    private HttpServletRequest request;
    private Weblogger             roller;
    private String             userName;
    
    /** Creates a new instance of HttpBasicAuthenticator */
    public Authenticator(HttpServletRequest req) {
    //#Authenticator.java:38: method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)
    //#Authenticator.java:38: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)
    //#    suspicious precondition index: [3]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): __Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): __Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): __Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): req
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this.__Tag
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this.request
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this.roller
    //#pre[3] (void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Authenticator, org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator}
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): this.request == req
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): init'ed(this.request)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)): init'ed(this.roller)
        setRequest(req);
        setRoller(WebloggerFactory.getWeblogger());
    //#Authenticator.java:40: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    }
    //#Authenticator.java:41: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.org.apache.roller.weblogger.webservices.adminprotocol.Authenticator(HttpServletRequest)
    
    public abstract void authenticate() throws HandlerException;
    
    /**
     * This method should be called by extensions of this class within their
     * implementation of authenticate().
     */
    protected void verifyUser(String userName, String password) throws HandlerException {
        User ud = getUserData(userName);
    //#Authenticator.java:50: method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.verifyUser(String, String)
    //#Authenticator.java:50: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    suspicious precondition index: [3]
    //#input(void verifyUser(String, String)): "ERROR: Could not get user: "._tainted
    //#input(void verifyUser(String, String)): "ERROR: Unknown user: "._tainted
    //#input(void verifyUser(String, String)): "ERROR: User is disabled: "._tainted
    //#input(void verifyUser(String, String)): "ERROR: User is not authorized: "._tainted
    //#input(void verifyUser(String, String)): "ERROR: User must have the admin role to use the RAP endpoint: "._tainted
    //#input(void verifyUser(String, String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#input(void verifyUser(String, String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(void verifyUser(String, String)): __Descendant_Table[others]
    //#input(void verifyUser(String, String)): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void verifyUser(String, String)): __Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(void verifyUser(String, String)): java.lang.Boolean.FALSE
    //#input(void verifyUser(String, String)): java.lang.Boolean.TRUE
    //#input(void verifyUser(String, String)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void verifyUser(String, String)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(void verifyUser(String, String)): password
    //#input(void verifyUser(String, String)): this
    //#input(void verifyUser(String, String)): this.__Tag
    //#input(void verifyUser(String, String)): this.roller
    //#input(void verifyUser(String, String)): userName
    //#input(void verifyUser(String, String)): userName._tainted
    //#pre[3] (void verifyUser(String, String)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Authenticator, org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator}
    //#pre[4] (void verifyUser(String, String)): this.roller != null
    //#pre[5] (void verifyUser(String, String)): userName != null
    //#pre[1] (void verifyUser(String, String)): (soft) password != null
    //#presumption(void verifyUser(String, String)): java.lang.Boolean:booleanValue(...)@68 == 1
    //#presumption(void verifyUser(String, String)): java.lang.Boolean:valueOf(...)@53 != null
    //#presumption(void verifyUser(String, String)): java.lang.String:equals(...)@58 == 1
    //#presumption(void verifyUser(String, String)): java.lang.String:equals(...)@61 == 1
    //#presumption(void verifyUser(String, String)): org.apache.roller.weblogger.pojos.User:getEnabled(...)@68 != null
    //#presumption(void verifyUser(String, String)): org.apache.roller.weblogger.pojos.User:hasRole(...)@65 == 1
    //#presumption(void verifyUser(String, String)): org.apache.roller.weblogger.util.Utilities:encodePassword(...)@55 != null
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUserByUserName
    //#unanalyzed(void verifyUser(String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#test_vector(void verifyUser(String, String)): java.lang.Boolean:booleanValue(...)@53: {0}, {1}
        String realpassword = ud.getPassword();
    //#Authenticator.java:51: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getPassword()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getPassword()
        
        boolean encrypted = Boolean.valueOf(WebloggerConfig.getProperty("passwds.encryption.enabled"));
    //#Authenticator.java:53: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
        if (encrypted) {
            password = Utilities.encodePassword(password, WebloggerConfig.getProperty("passwds.encryption.algorithm"));
    //#Authenticator.java:55: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
    //#Authenticator.java:55: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.util.Utilities:encodePassword(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.util.Utilities:encodePassword(String, String)
        }
        
        if (!userName.trim().equals(ud.getUserName())) {
    //#Authenticator.java:58: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getUserName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getUserName()
            throw new UnauthorizedException("ERROR: User is not authorized: " + userName);
        }
        if (!password.trim().equals(realpassword)) {
            throw new UnauthorizedException("ERROR: User is not authorized: " + userName);
        }
        
        if (!ud.hasRole("admin")) {
    //#Authenticator.java:65: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.pojos.User:hasRole(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.pojos.User:hasRole(String)
            throw new UnauthorizedException("ERROR: User must have the admin role to use the RAP endpoint: " + userName);
        }
        if (!ud.getEnabled().booleanValue()) {
    //#Authenticator.java:68: Warning: method not available
    //#    -- call on Boolean org.apache.roller.weblogger.pojos.User:getEnabled()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: void verifyUser(String, String)
    //#    unanalyzed callee: Boolean org.apache.roller.weblogger.pojos.User:getEnabled()
            throw new UnauthorizedException("ERROR: User is disabled: " + userName);
        }
    }
    //#Authenticator.java:71: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.verifyUser(String, String)
    
    public HttpServletRequest getRequest() {
        return request;
    //#Authenticator.java:74: method: HttpServletRequest org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getRequest()
    //#input(HttpServletRequest getRequest()): this
    //#input(HttpServletRequest getRequest()): this.request
    //#output(HttpServletRequest getRequest()): return_value
    //#pre[2] (HttpServletRequest getRequest()): init'ed(this.request)
    //#post(HttpServletRequest getRequest()): return_value == this.request
    //#post(HttpServletRequest getRequest()): init'ed(return_value)
    //#Authenticator.java:74: end of method: HttpServletRequest org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getRequest()
    }
    
    protected void setRequest(HttpServletRequest request) {
        this.request = request;
    //#Authenticator.java:78: method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setRequest(HttpServletRequest)
    //#input(void setRequest(HttpServletRequest)): request
    //#input(void setRequest(HttpServletRequest)): this
    //#output(void setRequest(HttpServletRequest)): this.request
    //#post(void setRequest(HttpServletRequest)): this.request == request
    //#post(void setRequest(HttpServletRequest)): init'ed(this.request)
    }
    //#Authenticator.java:79: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setRequest(HttpServletRequest)
    
    public String getUserName() {
        return userName;
    //#Authenticator.java:82: method: String org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getUserName()
    //#input(String getUserName()): this
    //#input(String getUserName()): this.userName
    //#output(String getUserName()): return_value
    //#pre[2] (String getUserName()): init'ed(this.userName)
    //#post(String getUserName()): return_value == this.userName
    //#post(String getUserName()): init'ed(return_value)
    //#Authenticator.java:82: end of method: String org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getUserName()
    }
    
    protected void setUserName(String userId) {
        this.userName = userId;
    //#Authenticator.java:86: method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setUserName(String)
    //#input(void setUserName(String)): this
    //#input(void setUserName(String)): userId
    //#output(void setUserName(String)): this.userName
    //#post(void setUserName(String)): this.userName == userId
    //#post(void setUserName(String)): init'ed(this.userName)
    }
    //#Authenticator.java:87: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setUserName(String)
    
    protected Weblogger getRoller() {
        return roller;
    //#Authenticator.java:90: method: Weblogger org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getRoller()
    //#input(Weblogger getRoller()): this
    //#input(Weblogger getRoller()): this.roller
    //#output(Weblogger getRoller()): return_value
    //#pre[2] (Weblogger getRoller()): init'ed(this.roller)
    //#post(Weblogger getRoller()): return_value == this.roller
    //#post(Weblogger getRoller()): init'ed(return_value)
    //#Authenticator.java:90: end of method: Weblogger org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getRoller()
    }
    
    protected void setRoller(Weblogger roller) {
        this.roller = roller;
    //#Authenticator.java:94: method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setRoller(Weblogger)
    //#input(void setRoller(Weblogger)): roller
    //#input(void setRoller(Weblogger)): this
    //#output(void setRoller(Weblogger)): this.roller
    //#post(void setRoller(Weblogger)): this.roller == roller
    //#post(void setRoller(Weblogger)): init'ed(this.roller)
    }
    //#Authenticator.java:95: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.setRoller(Weblogger)
    
    protected User getUserData(String name) throws NotFoundException, InternalException {
        try {
            UserManager mgr = getRoller().getUserManager();
    //#Authenticator.java:99: method: User org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getUserData(String)
    //#Authenticator.java:99: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: User getUserData(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#Authenticator.java:99: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: User getUserData(String)
    //#    suspicious precondition index: [4]
    //#input(User getUserData(String)): "ERROR: Could not get user: "._tainted
    //#input(User getUserData(String)): "ERROR: Unknown user: "._tainted
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(User getUserData(String)): __Descendant_Table[others]
    //#input(User getUserData(String)): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): java.lang.Boolean.FALSE
    //#input(User getUserData(String)): java.lang.Boolean.TRUE
    //#input(User getUserData(String)): name
    //#input(User getUserData(String)): name._tainted
    //#input(User getUserData(String)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): this
    //#input(User getUserData(String)): this.__Tag
    //#input(User getUserData(String)): this.roller
    //#output(User getUserData(String)): return_value
    //#pre[4] (User getUserData(String)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Authenticator, org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator}
    //#pre[5] (User getUserData(String)): this.roller != null
    //#presumption(User getUserData(String)): init'ed(java.lang.Boolean.FALSE)
    //#presumption(User getUserData(String)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(User getUserData(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@99 != null
    //#post(User getUserData(String)): return_value != null
    //#unanalyzed(User getUserData(String)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(User getUserData(String)): Effects-of-calling:java.lang.Exception
    //#test_vector(User getUserData(String)): org.apache.roller.weblogger.business.UserManager:getUserByUserName(...)@100: Inverse{null}, Addr_Set{null}
            User ud = mgr.getUserByUserName(name, Boolean.TRUE);
    //#Authenticator.java:100: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: User getUserData(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
            if (ud == null) {
                ud = mgr.getUserByUserName(name, Boolean.FALSE);
    //#Authenticator.java:102: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: User getUserData(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
            }
            if (ud == null) {
                throw new NotFoundException("ERROR: Unknown user: " + name);
    //#Authenticator.java:105: ?conditional throw
    //#    ud != null
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
    //#    method: User getUserData(String)
    //#    basic block: bb_4
    //#    assertion: ud != null
    //#    VN: ud == null
    //#    Expected: {0}
    //#    Bad: {1}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad > Exp
            }
            
            return ud;
        } catch (WebloggerException re) {
            throw new InternalException("ERROR: Could not get user: " + name, re);
    //#Authenticator.java:110: end of method: User org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.getUserData(String)
        }
    }
    
}
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.authenticate()V
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getUserName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.verifyUser(Ljava/lang/String;Ljava/lang/String;)V
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.authenticate()V == &authenticate
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest; == &getRequest
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger; == &getRoller
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User; == &getUserData
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.getUserName()Ljava/lang/String; == &getUserName
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V == &setRequest
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V == &setRoller
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.setUserName(Ljava/lang/String;)V == &setUserName
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init): __Dispatch_Table.verifyUser(Ljava/lang/String;Ljava/lang/String;)V == &verifyUser
    //#Authenticator.java:: end of method: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator.org.apache.roller.weblogger.webservices.adminprotocol.Authenticator__static_init
    //#Authenticator.java:: end of class: org.apache.roller.weblogger.webservices.adminprotocol.Authenticator
