📄 permistargetpolicy.java
字号:
/*
* Copyright (c) 2000-2005, University of Salford
* 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 the University of Salford 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 issrg.editor.gui;
import issrg.editor.RemoveFromList;
import issrg.editor.PermisDataBox;
import issrg.editor.PermisDomainTree;
import issrg.editor.PermisLdapTree ;
import issrg.utils.LDAP_DIT;
import issrg.utils.DITSelectionListener;
import issrg.pba.rbac.policies.DITSubtree;
import issrg.pba.repository.UserEntry;
import issrg.pba.rbac.LDAPDNPrincipal;
import issrg.pba.rbac.URLHandler;
import issrg.pba.rbac.policies.Subtree;
import issrg.utils.repository.Entry;
import issrg.pba.rbac.policies.LDAPEntry;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.FocusEvent;
import java.util.ResourceBundle;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.StringTokenizer;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.DefaultMutableTreeNode;
import org.netbeans.lib.awtextra.AbsoluteLayout;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
/**
* Classname: PermisSubjectPolicy
*
* Description: This class creates the Target Policy windows, its associated
* buttons and their methods.
* Version 1.0.
*
* Copyright (c) the authors April 2004
*
* @author Professor D.W.Chadwick
* P. Langley
* U. Mbanaso
*/
public class PermisTargetPolicy extends PermisPolicyPanel implements FocusListener, ActionListener, DITSelectionListener
{
private static final Pattern uriPattern = Pattern.compile("^\\w+:(//)?(\\w+\\.)*\\w+(:(\\d\\-)?\\d)?.+$");
private static final String VIEW_ACTION = "view";
private static final String EDIT_ACTION = "edit";
private static final String DELETE_ACTION = "delete";
private static final String CLOSE_ACTION = "close";
private static final String INCLUDE_ACTION = "include";
private static final String EXCLUDE_ACTION = "exclude";
private static final String DELETE1_ACTION = "delete1";
private static final String OK_ACTION = "ok";
private static final String CANCEL_ACTION = "cancel";
private static final String CLOSE1_ACTION = "close1";
private static final String ADD_ACTION = "add";
private static final String DELETE2_ACTION = "delete2";
private static final String LDAP_ACTION = "ldap";
private static final String URL_ACTION = "url";
protected static final String ID = "ID";
protected static final String TARGET_DOMAIN_SPEC = "TargetDomainSpec";
private DefaultListModel targetObjectClassListModel;
private DefaultListModel targetViewListModel;
private JButton closeTargetButton;
private JButton targetCancelButton;
private JButton targetCloseButton;
private JButton targetDeleteButton;
private JButton targetExcludeButton;
private JButton targetIncludeButton;
private JButton targetObjectClassAddButton;
private JButton targetObjectClassDeleteButton;
private JButton targetOkButton;
private JButton targetViewDeleteButton;
private JButton targetViewEditButton;
private javax.swing.JRadioButton urlRadioButton;
private javax.swing.JPanel buttonPanel1;
private javax.swing.JPanel idPanel1;
private javax.swing.JLabel ldapDnLabel;
private javax.swing.JPanel ldapButtonPanel;
private javax.swing.JLabel ldapLabel1;
private javax.swing.JPanel ldapPanel1;
private javax.swing.JRadioButton ldapRadioButton1;
private javax.swing.JTree ldapTree1;
private javax.swing.JPanel optionPanel1;
private javax.swing.JButton resourceButton;
private javax.swing.JPanel resourceButtonPanel;
private javax.swing.JButton resourceDeleteButton;
private javax.swing.JLabel resourceLabel;
private javax.swing.JPanel resourcePanel1;
private javax.swing.JScrollPane resourceTypeScrollPane;
private javax.swing.ButtonGroup optionButtonGroup;
private javax.swing.JScrollPane targetLdapScrollPane;
private javax.swing.JTree targetTree1;
private javax.swing.JScrollPane targetTreeScrollPane;
private javax.swing.JLabel urlLabel;
private javax.swing.JPanel urlPanel;
private javax.swing.JRadioButton urlRadioButton1;
private javax.swing.JTextField urlTextField;
private JComboBox targetViewComboBox;
private JInternalFrame targetInternalFrame;
private JLabel targetDomainLDAPLabel;
private JLabel targetDomainLDAPDNLabel;
private JLabel targetObjectClassLabel;
private JList targetObjectClassList;
private JList targetViewList;
private JPanel targetDomainButtonPanel;
private JPanel targetDomainButtonsPanel;
private JPanel targetDomainIDPanel;
private JPanel targetDomainOkButtonsPanel;
private JPanel targetDomainPanel;
private JPanel targetDomainsPanel;
private JPanel targetObjectClassPanel;
private JPanel targetPolicyCreatePanel;
private JPanel targetPolicyViewPanel;
private JPanel optionPanel;
private JScrollPane targetDomainLDAPScrollPane;
private JScrollPane targetDomainTreeScrollPane;
private JScrollPane targetObjectClassScrollPane;
private JScrollPane targetViewScrollPane;
private JTabbedPane targetDomainTabbedPane;
private JTextField targetDnTextField;
private JTextField targetIdTextField;
private JTextField targetObjectClassTextField;
private JTree ldapTargetTree;
private JTree subTree;
private JTree targetTree;
private PermisDomainTree permisTargetPolicy;
private PermisPolicyEditorButton parent;
private PermisPolicyLoader loader;
private LDAP_DIT ldap_dit;
protected boolean editPressed = false;
/**
* Constructor
*/
public PermisTargetPolicy(PermisPolicyEditorButton parent)
{
this.parent = parent;
loader = parent.getLoader();
}
public void setEditPressed(boolean set)
{
this.editPressed = set;
}
/**
* This method creates an instance of the class and initilaises all the
* relevant variables.
*
* @return A JInternalFrame containing the Target Policy windows.
*/
public JInternalFrame createPolicy()
{
targetObjectClassListModel = new DefaultListModel();
targetViewListModel = new DefaultListModel();
closeTargetButton = new JButton();
targetObjectClassAddButton = new JButton();
targetObjectClassDeleteButton = new JButton();
// targetOkButton = new JButton();
targetViewEditButton = new JButton();
targetViewDeleteButton = new JButton();
targetViewComboBox = new JComboBox();
targetInternalFrame = new JInternalFrame();
targetDomainLDAPLabel = new JLabel();
targetDomainLDAPDNLabel = new JLabel();
targetObjectClassLabel = new JLabel();
targetObjectClassList = new JList(targetObjectClassListModel);
targetViewList = new JList(targetViewListModel);
targetDomainButtonsPanel = new JPanel();
targetDomainIDPanel = new JPanel();
targetDomainOkButtonsPanel = new JPanel();
targetDomainPanel = new JPanel();
targetDomainsPanel = new JPanel();
targetDomainButtonPanel = new JPanel();
targetPolicyViewPanel = new JPanel();
targetObjectClassPanel = new JPanel();
optionPanel = new JPanel();
targetViewScrollPane = new JScrollPane();
targetDomainTabbedPane = new JTabbedPane();
targetDnTextField = new JTextField();
targetIdTextField = new JTextField();
targetObjectClassTextField = new JTextField();
optionButtonGroup = new javax.swing.ButtonGroup();
targetPolicyCreatePanel = new javax.swing.JPanel();
ldapPanel1 = new javax.swing.JPanel();
targetDnTextField = new javax.swing.JTextField();
ldapDnLabel = new javax.swing.JLabel();
ldapButtonPanel = new javax.swing.JPanel();
targetIncludeButton = new javax.swing.JButton();
targetExcludeButton = new javax.swing.JButton();
targetDeleteButton = new javax.swing.JButton();
targetTreeScrollPane = new javax.swing.JScrollPane();
targetTree1 = new javax.swing.JTree();
targetLdapScrollPane = new javax.swing.JScrollPane();
ldapTree1 = new javax.swing.JTree();
ldapLabel1 = new javax.swing.JLabel();
idPanel1 = new javax.swing.JPanel();
targetIdTextField = new javax.swing.JTextField();
buttonPanel1 = new javax.swing.JPanel();
targetOkButton = new javax.swing.JButton();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -