Add live TLS certificate probing and improve restart error handling.

Configure CertificateCheckUrl per container for curl-like TLS checks, classify Sonic permission errors, and extend setup wizard for container management.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 13:16:21 +02:00
co-authored by Cursor
parent d20e0df618
commit 58b7826162
1430 changed files with 358394 additions and 71 deletions
@@ -0,0 +1,574 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_19) on Fri Aug 12 11:25:08 EDT 2011 -->
<TITLE>
MBeanPermission (Management Application API)
</TITLE>
<META NAME="keywords" CONTENT="javax.management.MBeanPermission class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="MBeanPermission (Management Application API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="MBeanPermission.html#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Sonic Management API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="MBeanParameterInfo.html" title="class in javax.management"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="MBeanRegistration.html" title="interface in javax.management"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html@javax%252Fmanagement%252FMBeanPermission.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MBeanPermission.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="MBeanPermission.html#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="MBeanPermission.html#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="MBeanPermission.html#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="MBeanPermission.html#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
javax.management</FONT>
<BR>
Class MBeanPermission</H2>
<PRE>
java.lang.Object
<IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.security.Permission
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>javax.management.MBeanPermission</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.security.Guard</DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>MBeanPermission</B><DT>extends java.security.Permission</DL>
</PRE>
<P>
<p>Permission controlling access to MBeanServer operations. If a
security manager has been set using <CODE>System.setSecurityManager(java.lang.SecurityManager)</CODE>, most operations on the MBean Server
require that the caller's permissions imply an MBeanPermission
appropriate for the operation. This is described in detail in the
documentation for the <A HREF="MBeanServer.html" title="interface in javax.management"><CODE>MBeanServer</CODE></A> interface.</p>
<p>As with other <CODE>Permission</CODE> objects, an MBeanPermission can
represent either a permission that you <em>have</em> or a
permission that you <em>need</em>. When a sensitive operation is
being checked for permission, an MBeanPermission is constructed
representing the permission you need. The operation is only
allowed if the permissions you have <A HREF="MBeanPermission.html#implies(java.security.Permission)"><CODE>imply</CODE></A> the
permission you need.</p>
<p>An MBeanPermission contains four items of information:</p>
<ul>
<li><p>The <em>action</em>. For a permission you need,
this is one of the actions in the list <a
href="MBeanPermission.html#action-list">below</a>. For a permission you have, this is
a comma-separated list of those actions, or <code>*</code>,
representing all actions.</p>
<p>The action is returned by <A HREF="MBeanPermission.html#getActions()"><CODE>getActions()</CODE></A>.</p>
<li><p>The <em>class name</em>.</p>
<p>For a permission you need, this is the class name of an MBean
you are accessing, as returned by <A HREF="MBeanServer.html#getMBeanInfo(javax.management.ObjectName)"><CODE>MBeanServer.getMBeanInfo(name)</CODE></A>.<A HREF="MBeanInfo.html#getClassName()"><CODE>getClassName()</CODE></A>. Certain operations do not reference a class name,
in which case the class name is null.</p>
<p>For a permission you have, this is either empty or a <em>class
name pattern</em>. A class name pattern is a string following the
Java conventions for dot-separated class names. It may end with
"<code>.*</code>" meaning that the permission grants access to any
class that begins with the string preceding "<code>.*</code>". For
instance, "<code>javax.management.*</code>" grants access to
<code>javax.management.MBeanServerDelegate</code> and
<code>javax.management.timer.Timer</code>, among other classes.</p>
<p>A class name pattern can also be empty or the single character
"<code>*</code>", both of which grant access to any class.</p>
<li><p>The <em>member</em>.</p>
<p>For a permission you need, this is the name of the attribute or
operation you are accessing. For operations that do not reference
an attribute or operation, the member is null.</p>
<p>For a permission you have, this is either the name of an attribute
or operation you can access, or it is empty or the single character
"<code>*</code>", both of which grant access to any member.</p>
<li><p>The <em>object name</em>.</p>
<p>For a permission you need, this is the <A HREF="ObjectName.html" title="class in javax.management"><CODE>ObjectName</CODE></A> of the
MBean you are accessing. For operations that do not reference a
single MBean, it is null. It is never an object name pattern.</p>
<p>For a permission you have, this is the <A HREF="ObjectName.html" title="class in javax.management"><CODE>ObjectName</CODE></A> of the
MBean or MBeans you can access. It may be an object name pattern
to grant access to all MBeans whose names match the pattern. It
may also be empty, which grants access to all MBeans whatever their
name.</p>
</ul>
<p>If you have an MBeanPermission, it allows operations only if all
four of the items match.</p>
<p>The class name, member, and object name can be written together
as a single string, which is the <em>name</em> of this permission.
The name of the permission is the string returned by <CODE>getName()</CODE>. The format of the string is:</p>
<blockquote>
<code>className#member[objectName]</code>
</blockquote>
<p>The object name is written using the usual syntax for <A HREF="ObjectName.html" title="class in javax.management"><CODE>ObjectName</CODE></A>. It may contain any legal characters, including
<code>]</code>. It is terminated by a <code>]</code> character
that is the last character in the string.</p>
<p>One or more of the <code>className</code>, <code>member</code>,
or <code>objectName</code> may be omitted. If the
<code>member</code> is omitted, the <code>#</code> may be too (but
does not have to be). If the <code>objectName</code> is omitted,
the <code>[]</code> may be too (but does not have to be). It is
not legal to omit all three items, that is to have a <em>name</em>
that is the empty string.</p>
<p>One or more of the <code>className</code>, <code>member</code>,
or <code>objectName</code> may be the character "<code>-</code>",
which is equivalent to a null value. A null value is implied by
any value (including another null value) but does not imply any
other value.</p>
<p><a name="action-list">The possible actions are these:</a></p>
<ul>
<li>addNotificationListener</li>
<li>getAttribute</li>
<li>getClassLoader</li>
<li>getClassLoaderFor</li>
<li>getClassLoaderRepository</li>
<li>getDomains</li>
<li>getMBeanInfo</li>
<li>getObjectInstance</li>
<li>instantiate</li>
<li>invoke</li>
<li>isInstanceOf</li>
<li>queryMBeans</li>
<li>queryNames</li>
<li>registerMBean</li>
<li>removeNotificationListener</li>
<li>setAttribute</li>
<li>unregisterMBean</li>
</ul>
<p>In a comma-separated list of actions, spaces are allowed before
and after each action.</p>
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>JMX 1.2</DD>
<DT><B>See Also:</B><DD><A HREF="../../serialized-form.html#javax.management.MBeanPermission">Serialized Form</A></DL>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="MBeanPermission.html#MBeanPermission(java.lang.String, java.lang.String)">MBeanPermission</A></B>(java.lang.String&nbsp;name,
java.lang.String&nbsp;actions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new MBeanPermission object with the specified target name
and actions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="MBeanPermission.html#MBeanPermission(java.lang.String, java.lang.String, javax.management.ObjectName, java.lang.String)">MBeanPermission</A></B>(java.lang.String&nbsp;className,
java.lang.String&nbsp;member,
<A HREF="ObjectName.html" title="class in javax.management">ObjectName</A>&nbsp;objectName,
java.lang.String&nbsp;actions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new MBeanPermission object with the specified target name
(class name, member, object name) and actions.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="MBeanPermission.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks two MBeanPermission objects for equality.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="MBeanPermission.html#getActions()">getActions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the "canonical string representation" of the actions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="MBeanPermission.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the hash code value for this object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="MBeanPermission.html#implies(java.security.Permission)">implies</A></B>(java.security.Permission&nbsp;p)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if this MBeanPermission object "implies" the
specified permission.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.security.Permission"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.security.Permission</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>checkGuard, getName, newPermissionCollection, toString</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="MBeanPermission(java.lang.String, java.lang.String)"><!-- --></A><H3>
MBeanPermission</H3>
<PRE>
public <B>MBeanPermission</B>(java.lang.String&nbsp;name,
java.lang.String&nbsp;actions)</PRE>
<DL>
<DD><p>Create a new MBeanPermission object with the specified target name
and actions.</p>
<p>The target name is of the form
"<code>className#member[objectName]</code>" where each part is
optional. It must not be empty or null.</p>
<p>The actions parameter contains a comma-separated list of the
desired actions granted on the target name. It must not be
empty or null.</p>
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the triplet "className#member[objectName]".<DD><CODE>actions</CODE> - the action string.
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the <code>name</code> or
<code>actions</code> is invalid.</DL>
</DL>
<HR>
<A NAME="MBeanPermission(java.lang.String, java.lang.String, javax.management.ObjectName, java.lang.String)"><!-- --></A><H3>
MBeanPermission</H3>
<PRE>
public <B>MBeanPermission</B>(java.lang.String&nbsp;className,
java.lang.String&nbsp;member,
<A HREF="ObjectName.html" title="class in javax.management">ObjectName</A>&nbsp;objectName,
java.lang.String&nbsp;actions)</PRE>
<DL>
<DD><p>Create a new MBeanPermission object with the specified target name
(class name, member, object name) and actions.</p>
<p>The class name, member and object name parameters define a
target name of the form
"<code>className#member[objectName]</code>" where each part is
optional. This will be the result of <CODE>Permission.getName()</CODE> on the
resultant MBeanPermission.</p>
<p>The actions parameter contains a comma-separated list of the
desired actions granted on the target name. It must not be
empty or null.</p>
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>className</CODE> - the class name to which this permission applies.
May be null or <code>"-"</code>, which represents a class name
that is implied by any class name but does not imply any other
class name.<DD><CODE>member</CODE> - the member to which this permission applies. May
be null or <code>"-"</code>, which represents a member that is
implied by any member but does not imply any other member.<DD><CODE>objectName</CODE> - the object name to which this permission
applies. May be null, which represents an object name that is
implied by any object name but does not imply any other object
name.<DD><CODE>actions</CODE> - the action string.</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>
<DL>
<DD>Checks two MBeanPermission objects for equality. Checks
that <i>obj</i> is an MBeanPermission, and has the same
name and actions as this object.
<P>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>equals</CODE> in class <CODE>java.security.Permission</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the object we are testing for equality with this object.
<DT><B>Returns:</B><DD>true if obj is an MBeanPermission, and has the
same name and actions as this MBeanPermission object.</DL>
</DD>
</DL>
<HR>
<A NAME="getActions()"><!-- --></A><H3>
getActions</H3>
<PRE>
public java.lang.String <B>getActions</B>()</PRE>
<DL>
<DD>Returns the "canonical string representation" of the actions. That is,
this method always returns present actions in alphabetical order.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getActions</CODE> in class <CODE>java.security.Permission</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the canonical string representation of the actions.</DL>
</DD>
</DL>
<HR>
<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD>Returns the hash code value for this object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>hashCode</CODE> in class <CODE>java.security.Permission</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>a hash code value for this object.</DL>
</DD>
</DL>
<HR>
<A NAME="implies(java.security.Permission)"><!-- --></A><H3>
implies</H3>
<PRE>
public boolean <B>implies</B>(java.security.Permission&nbsp;p)</PRE>
<DL>
<DD><p>Checks if this MBeanPermission object "implies" the
specified permission.</p>
<p>More specifically, this method returns true if:</p>
<ul>
<li> <i>p</i> is an instance of MBeanPermission; and</li>
<li> <i>p</i> has a null className or <i>p</i>'s className
matches this object's className; and</li>
<li> <i>p</i> has a null member or <i>p</i>'s member matches this
object's member; and</li>
<li> <i>p</i> has a null object name or <i>p</i>'s
object name matches this object's object name; and</li>
<li> <i>p</i>'s actions are a subset of this object's actions</li>
</ul>
<p>If this object's className is "<code>*</code>", <i>p</i>'s
className always matches it. If it is "<code>a.*</code>", <i>p</i>'s
className matches it if it begins with "<code>a.</code>".</p>
<p>If this object's member is "<code>*</code>", <i>p</i>'s
member always matches it.</p>
<p>If this object's objectName <i>n1</i> is an object name pattern,
<i>p</i>'s objectName <i>n2</i> matches it if
<A HREF="ObjectName.html#equals(java.lang.Object)"><CODE><i>n1</i>.equals(<i>n2</i>)</CODE></A> or if
<A HREF="ObjectName.html#apply(javax.management.ObjectName)"><CODE><i>n1</i>.apply(<i>n2</i>)</CODE></A>.</p>
<p>A permission that includes the <code>queryMBeans</code> action
is considered to include <code>queryNames</code> as well.</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>implies</CODE> in class <CODE>java.security.Permission</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - the permission to check against.
<DT><B>Returns:</B><DD>true if the specified permission is implied by this object,
false if not.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="MBeanPermission.html#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Sonic Management API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="MBeanParameterInfo.html" title="class in javax.management"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="MBeanRegistration.html" title="interface in javax.management"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html@javax%252Fmanagement%252FMBeanPermission.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MBeanPermission.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="MBeanPermission.html#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="MBeanPermission.html#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="MBeanPermission.html#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="MBeanPermission.html#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<font size="-1">Copyright &copy; 2001-2011
<a href="http://www.progress.com" target="_top"> Progress Software Corporation</a>. All Rights Reserved.
<br>HTML formatted on 12-Aug-2011.</font>
</BODY>
</HTML>