JANUS WEB DEBUG: Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
 
m (add IPV6 address format)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:JANUS WEB DEBUG}}
<span class="pageSubtitle">Set debugging options and levels</span>
<span class="pageSubtitle"><section begin="desc" />Set debugging options and levels<section end="desc" /></span>


The JANUS WEB DEBUG command indicates that requests for a specified URL (the <var class="term">url</var> value) are to be debugged, that is, the server is to wait for another user to issue a <var>[[JANUSDEBUG]]</var> command before running the request on the issuing user's thread.
The <var>JANUS WEB DEBUG</var> command indicates that requests for a specified URL (the <var class="term">url</var> value) are to be debugged, that is, the server is to wait for another user to issue a <var>[[JANUSDEBUG]]</var> command before running the request on the issuing user's thread.


==Syntax==
==Syntax==
<p class="syntax"><section begin="syntax" /> JANUS WEB portname DEBUG [method] url -
<p class="syntax">JANUS WEB <span class="term">portname</span> DEBUG [<span class="term">method</span>] <span class="term">url</span> -
         [IPADDR ipaddr | IPGROUP ipgroup] -
         [IPADDR <span class="term">ipaddr</span> | IPGROUP <span class="term">ipgroup</span>] -
         [USER user | USGROUP usgroup] -
         [USER <span class="term">user</span> | USGROUP <span class="term">usgroup</span>] -
         [PORTOPEN | NOPORTOPEN] -
         [PORTOPEN | NOPORTOPEN] -
         [PORTCMD | NOPORTCMD] [PUBLIC]
         [PORTCMD | NOPORTCMD] [PUBLIC]
<section end="syntax" /></p>
</p>


<var class="term">portname</var>, <var class="term">method</var>, and <var class="term">url</var> are described under the <var>[[JANUS WEB]]</var> command. The remaining parameters for <var>JANUS WEB DEBUG</var> are described below:
<var class="term">portname</var>, <var class="term">method</var>, and <var class="term">url</var> are described under the <var>[[JANUS WEB]]</var> command. The remaining parameters for <var>JANUS WEB DEBUG</var> are the four mutually exclusive pairs described below:


<table class="syntaxTable">
<table>
<tr><th>IPADDR ipaddr</th>
<tr><th><var>IPADDR</var> ipaddr</th>


<td>Indicates that requests from an IP address that matches <var class="term">ipaddr</var> will be debugged. <var class="term">ipaddr</var> can be a simple IP address, or it can be a subnet. Subnets are indicated by an IP address followed by either of these:
<td>Indicates that requests from an IP address that matches <var class="term">ipaddr</var> will be debugged. <var class="term">ipaddr</var> can be an IPV4 dotted-decimal address, an IPV6 address (as of version 7.7 of Model&nbsp;204), or it can be a subnet.  
 
<ul>
<li>IPV4 subnets are indicated by an IP address followed by one of these:
<ul>
<ul>
<li>A forward slash (/) followed by a netmask (with no intervening blanks)  
<li>A forward slash (<tt>/</tt>) followed by a netmask (with no intervening blanks)</li>
<li>A hyphen (-) followed by a number of bits in the subnet mask (with no intervening blanks)  
 
<li>A hyphen (<tt>-</tt>) followed by the number of bits in the subnet mask (with no intervening blanks)</li>
</ul>
<p>
For example, <code>198.242.244.97</code> is a simple IP address that must be matched exactly. <code>.198.242.244.0/255.255.255.0</code>, which is equivalent to <code>198.242.244.0-24</code>, indicates that any machine on subnet 198.242.244.0 is to be allowed access to <var class="term">url</var>. </p>
 
<li>IPV6 addresses are 128-bit integers, represented with eight, colon-separated, 16-bit (four hex-digit) groups, which may be abbreviated and represented with fewer groups. For example,
<code>fe80:0000:0000:0000:0200:0000:0300:0016</code> or <code>fe80::200:0:300:16</code>.
<p>
An IPV6 subnet is indicated by the first address in the range, followed by a forward slash, and a decimal value equal to the number of bits in the network prefix. A subnet that includes the example address above is: <code>fe80::200:0/48</code>. </p></li>
</ul>
</ul>
For example, <tt>198.244.244.97</tt> is a simple IP address that must be matched exactly. <code>.198.242.244.0/255.255.255.0</code>,  which is equivalent to <code>198.242.244.0-24</code>, indicates that any machine on subnet 198.242.244.0 is to be allowed access to <var class="term">url</var>. The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. It is valid to specify neither IPADDR nor IPGROUP. If neither is specified, the rule applies to requests from all IP addresses. If IPADDR and USER or USGROUP are specified, a user must satisfy both the IPADDR criterion and the USER or USGROUP criterion for the request to be debugged.</td></tr>
<p>
The <var>IPADDR</var> parameter cannot be specified if the <var>IPGROUP</var> parameter is specified. It is valid to specify neither <var>IPADDR</var> nor <var>IPGROUP</var>. If neither is specified, the rule applies to requests from all IP addresses. </p>
<p>
If <var>IPADDR</var> and <var>USER</var> or <var>USGROUP</var> are specified, a user must satisfy both the <var>IPADDR</var> criterion and the <var>USER</var> or <var>USGROUP</var> criterion for the request to be debugged.</p></td></tr>


<tr><th>IPGROUP ipgroup</th>
<tr><th><var>IPGROUP</var> ipgroup</th>


<td>Indicates that requests from an IP address that is in <var class="term">ipgroup</var> will be debugged. IP address groups are defined with the <var>[[JANUS DEFINEIPGROUP]]</var> command. The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. It is valid to specify neither IPGROUP nor IPADDR. If neither is specified, the rule applies to requests from all IP addresses. If IPGROUP and USER or USGROUP are specified, a user must satisfy both the IPGROUP criterion and the USER or USGROUP criterion for the request to be debugged.</td></tr>
<td>Indicates that requests from an IP address that is in <var class="term">ipgroup</var> will be debugged. IP address groups are defined with the <var>[[JANUS DEFINEIPGROUP]]</var> command.  
<p>
The <var>IPGROUP</var> parameter cannot be specified if the <var>IPADDR</var> parameter is specified. It is valid to specify neither <var>IPGROUP</var> nor <var>IPADDR</var>. If neither is specified, the rule applies to requests from all IP addresses. </p>
<p>
If <var>IPGROUP</var> and <var>USER</var> or <var>USGROUP</var> are specified, a user must satisfy both the <var>IPGROUP</var> criterion and the <var>USER</var> or <var>USGROUP</var> criterion for the request to be debugged.</p></td></tr>


<tr><th>USER user</th>
<tr><th><var>USER</var> user</th>
<td>Indicates that requests running under userid <var class="term">user</var> will be debugged. <var class="term">user</var> can be a specific userid, or it can contain wildcards. For example, if <var class="term">user</var> is <code>FLAN*</code>, any request run under a userid that begins with the string <code>FLAN</code> will be debugged. The USER parameter cannot be specified if the USGROUP parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid except public requests running under the WEBUSER ID.</td></tr>
<td>Indicates that requests running under userid <var class="term">user</var> will be debugged. <var class="term">user</var> can be a specific userid, or it can contain wildcards. For example, if <var class="term">user</var> is <code>FLAN*</code>, any request run under a userid that begins with the string <code>FLAN</code> will be debugged.  
<p>
The <var>USER</var> parameter cannot be specified if the <var>USGROUP</var> parameter is specified. It is valid to specify neither <var>USER</var> nor <var>USGROUP</var>. If neither is specified, the rule applies to requests running under any userid except public requests running under the <code>WEBUSER</code> ID.</p></td></tr>


<tr><th nowrap>USGROUP usgroup</th>
<tr><th><var>USGROUP</var> usgroup</th>
<td>Indicates that requests running under a userid in <var class="term">usgroup</var> will be debugged. User groups are defined with the <var>JANUS DEFINEUSGROUP</var> command. The USGROUP parameter cannot be specified if the USER parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid, except public requests running under the WEBUSER ID.</td></tr>
<td>Indicates that requests running under a userid in <var class="term">usgroup</var> will be debugged. User groups are defined with the <var>JANUS DEFINEUSGROUP</var> command.  
<p>
The <var>USGROUP</var> parameter cannot be specified if the <var>USER</var> parameter is specified. It is valid to specify neither <var>USER</var> nor <var>USGROUP</var>. If neither is specified, the rule applies to requests running under any userid, except public requests running under the <code>WEBUSER</code> ID.</p></td></tr>


<tr><th>PORTOPEN | NOPORTOPEN</th>
<tr><th nowrap><var>PORTOPEN</var> | <var>NOPORTOPEN</var></th>
<td>Indicates whether files or groups specified in the OPEN clause in the <var>JANUS DEFINE</var> command for the port are to be opened (PORTOPEN) or not (NOPORTOPEN). By default, these files or groups are not opened unless the port definition has the DEBPORTOPEN keyword. Files or groups in the JANUS DEFINE OPEN clause that are already open on the debugging users thread are not opened and do not have their file privileges adjusted to match the JANUS DEFINE OPEN clause requirements. Files or groups opened by JANUSDEBUG are closed when the request is completed. Use PORTOPEN if the files or groups in the port definition are required for proper application processing.</td></tr>
<td>Indicates whether files or groups specified in the <var>OPEN</var> clause in the <var>JANUS DEFINE</var> command for the port are to be opened (<var>PORTOPEN</var>) or not (<var>NOPORTOPEN</var>). By default, these files or groups are not opened unless the port definition has the <var>DEBPORTOPEN</var> keyword.  
<p>
Files or groups in the <var>JANUS DEFINE OPEN</var> clause that are already open on the debugging user's thread are not opened and do not have their file privileges adjusted to match the <var>JANUS DEFINE OPEN</var> clause requirements. </p>
<p>
Files or groups opened by <var>JANUSDEBUG</var> are closed when the request is completed. </p>
<p>
Use <var>PORTOPEN</var> if the files or groups in the port definition are required for proper application processing.</p></td></tr>


<tr><th>PORTCMD | NOPORTCMD</th>
<tr><th><var>PORTCMD</var> | <var>NOPORTCMD</var></th>
<td>Indicates whether the commands specified in the CMD clause in the <var>JANUS DEFINE</var> command for the port are to be issued (PORTCMD) or not (NOPORTCMD) on the debuging user's thread. By default, these commands are not issued unless the port definition has the DEBPORTCMD keyword. Use PORTCMD if the commands in the port definition are required for proper application processing or the these commands are to be debugged.</td></tr>
<td>Indicates whether the commands specified in the <var>CMD</var> clause in the <var>JANUS DEFINE</var> command for the port are to be issued (<var>PORTCMD</var>) or not (<var>NOPORTCMD</var>) on the debugging user's thread. By default, these commands are not issued unless the port definition has the <var>DEBPORTCMD</var> keyword.  
<p>
Use <var>PORTCMD</var> if the commands in the port definition are required for proper application processing or the these commands are to be debugged.</p></td></tr>


<tr><th>PUBLIC</th>
<tr><th><var>PUBLIC</var></th>
<td>Indicates that requests for public URLs, that is those that don't require a user login are to be debugged. Since a public URL requires no user login, there is no way for <var class="product">Janus Web Server</var> to associate such a request with a particular userid, so '''any''' userid can debug '''any''' public request. In an environment with multiple programmers and/or testers, this is a formula for confusion, though programmers conscientious enough to specify IPADDR, IPGROUP, and/or URL on JANUSDEBUG commands can mitigate some of this confusion. In general, it is recommended that a login be required for any URL to be debugged, even if the non-debugged URL would not require a user login.
<td>Indicates that requests for public URLs, that is those that don't require a user login are to be debugged. Since a public URL requires no user login, there is no way for <var class="product">Janus Web Server</var> to associate such a request with a particular user ID, so '''any''' user ID can debug '''any''' public request. In an environment with multiple programmers and/or testers, this is a formula for confusion, though programmers conscientious enough to specify <var>IPADDR</var>, <var>IPGROUP</var>, and/or <var>URL</var> on <var>JANUSDEBUG</var> commands can mitigate some of this confusion. In general, it is recommended that a login be required for any URL to be debugged, even if the non-debugged URL would not require a user login.
</td></tr></table>
</td></tr></table>


==See also==
==See also==
<ul>
<ul>
<li>[[JANUS WEB NODEBUG]]
<li><var>[[JANUS WEB NODEBUG]]</var></li>
<li>[[List of Janus commands]]
<li>[[List of Janus commands]]</li>
<li>[[List of JANUS WEB subcommands]]
<li>[[List of JANUS WEB subcommands]]</li>
<li>[[Defining Web rules|"Defining Web rules"]]
<li>[[Defining Web rules]]</li>
</ul>
</ul>


[[Category:JANUS WEB subcommands|JANUS WEB DEBUG]]
[[Category:JANUS WEB subcommands|JANUS WEB DEBUG]]

Latest revision as of 20:44, 6 December 2016

Set debugging options and levels

The JANUS WEB DEBUG command indicates that requests for a specified URL (the url value) are to be debugged, that is, the server is to wait for another user to issue a JANUSDEBUG command before running the request on the issuing user's thread.

Syntax

JANUS WEB portname DEBUG [method] url - [IPADDR ipaddr | IPGROUP ipgroup] - [USER user | USGROUP usgroup] - [PORTOPEN | NOPORTOPEN] - [PORTCMD | NOPORTCMD] [PUBLIC]

portname, method, and url are described under the JANUS WEB command. The remaining parameters for JANUS WEB DEBUG are the four mutually exclusive pairs described below:

IPADDR ipaddr Indicates that requests from an IP address that matches ipaddr will be debugged. ipaddr can be an IPV4 dotted-decimal address, an IPV6 address (as of version 7.7 of Model 204), or it can be a subnet.
  • IPV4 subnets are indicated by an IP address followed by one of these:
    • A forward slash (/) followed by a netmask (with no intervening blanks)
    • A hyphen (-) followed by the number of bits in the subnet mask (with no intervening blanks)

    For example, 198.242.244.97 is a simple IP address that must be matched exactly. .198.242.244.0/255.255.255.0, which is equivalent to 198.242.244.0-24, indicates that any machine on subnet 198.242.244.0 is to be allowed access to url.

  • IPV6 addresses are 128-bit integers, represented with eight, colon-separated, 16-bit (four hex-digit) groups, which may be abbreviated and represented with fewer groups. For example, fe80:0000:0000:0000:0200:0000:0300:0016 or fe80::200:0:300:16.

    An IPV6 subnet is indicated by the first address in the range, followed by a forward slash, and a decimal value equal to the number of bits in the network prefix. A subnet that includes the example address above is: fe80::200:0/48.

The IPADDR parameter cannot be specified if the IPGROUP parameter is specified. It is valid to specify neither IPADDR nor IPGROUP. If neither is specified, the rule applies to requests from all IP addresses.

If IPADDR and USER or USGROUP are specified, a user must satisfy both the IPADDR criterion and the USER or USGROUP criterion for the request to be debugged.

IPGROUP ipgroup Indicates that requests from an IP address that is in ipgroup will be debugged. IP address groups are defined with the JANUS DEFINEIPGROUP command.

The IPGROUP parameter cannot be specified if the IPADDR parameter is specified. It is valid to specify neither IPGROUP nor IPADDR. If neither is specified, the rule applies to requests from all IP addresses.

If IPGROUP and USER or USGROUP are specified, a user must satisfy both the IPGROUP criterion and the USER or USGROUP criterion for the request to be debugged.

USER user Indicates that requests running under userid user will be debugged. user can be a specific userid, or it can contain wildcards. For example, if user is FLAN*, any request run under a userid that begins with the string FLAN will be debugged.

The USER parameter cannot be specified if the USGROUP parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid except public requests running under the WEBUSER ID.

USGROUP usgroup Indicates that requests running under a userid in usgroup will be debugged. User groups are defined with the JANUS DEFINEUSGROUP command.

The USGROUP parameter cannot be specified if the USER parameter is specified. It is valid to specify neither USER nor USGROUP. If neither is specified, the rule applies to requests running under any userid, except public requests running under the WEBUSER ID.

PORTOPEN | NOPORTOPEN Indicates whether files or groups specified in the OPEN clause in the JANUS DEFINE command for the port are to be opened (PORTOPEN) or not (NOPORTOPEN). By default, these files or groups are not opened unless the port definition has the DEBPORTOPEN keyword.

Files or groups in the JANUS DEFINE OPEN clause that are already open on the debugging user's thread are not opened and do not have their file privileges adjusted to match the JANUS DEFINE OPEN clause requirements.

Files or groups opened by JANUSDEBUG are closed when the request is completed.

Use PORTOPEN if the files or groups in the port definition are required for proper application processing.

PORTCMD | NOPORTCMD Indicates whether the commands specified in the CMD clause in the JANUS DEFINE command for the port are to be issued (PORTCMD) or not (NOPORTCMD) on the debugging user's thread. By default, these commands are not issued unless the port definition has the DEBPORTCMD keyword.

Use PORTCMD if the commands in the port definition are required for proper application processing or the these commands are to be debugged.

PUBLIC Indicates that requests for public URLs, that is those that don't require a user login are to be debugged. Since a public URL requires no user login, there is no way for Janus Web Server to associate such a request with a particular user ID, so any user ID can debug any public request. In an environment with multiple programmers and/or testers, this is a formula for confusion, though programmers conscientious enough to specify IPADDR, IPGROUP, and/or URL on JANUSDEBUG commands can mitigate some of this confusion. In general, it is recommended that a login be required for any URL to be debugged, even if the non-debugged URL would not require a user login.

See also