⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 permissubjectpolicy.java

📁 一个完整的XACML工程,学习XACML技术的好例子!
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
     */
    
    private void subjectCancelButtonActionPerformed() 
    { 
        if(editPressed){
            subjectEditButtonActionPerformed();
        }
        else{
         String answer =  PermisPolicyEditorMenu.dialog.confirmDialog(
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_warn_msg_a") + 
                         "\n" +
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_warn_msg_b"), 
                         "Warning");
         if (answer.equals("No")) {
            return;
        }
        else {
            clearBoxes();
        }
      }
      editPressed = editPressed;
    }

    /**************************************************************************\
     *                           subjectOkButtonActionPerformed               *
    \**************************************************************************/
    
    /**
     * Collects the data entered by the use and writes it to the Document
     * Object Model (DOM), the PERMIS Policy, in memory. Informs the user of the
     * outcome of the operation.
     *
     * @param evt       Ok button operated.
     */

    private void subjectOkButtonActionPerformed() 
    {
        Character ch = null; //sub_pol_err_msg_c
        String s = getIDInitialization();
         //checks if the ID already exists in the policy
        if (parent.getIdHashtable(subjectIdTextField.getText())){
            PermisPolicyEditorMenu.dialog.showOkDialog(
           ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("pol_err_msg_id") +" "+
                   getString(subjectIdTextField.getText())+" "+
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("pol_err_msg_id_exist"));
           return;
        } 
        else if (subjectIdTextField.getText().equals(s)){
            PermisPolicyEditorMenu.dialog.showOkDialog(
                  ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_c") + " "+
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("pol_id_text_err_msg") );
              subjectIdTextField.requestFocus();
            return;
        }
        else if ( subjectIdTextField.getText().equals("")){
           
            PermisPolicyEditorMenu.dialog.showOkDialog(
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_c") + " "+
                          ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_domain") +
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_a")+ " " +
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString( "pol_textfield_empty_err")+
                         "\n" );
             subjectIdTextField.requestFocus();
            return;
        }//pol_readable_sub
        else  if (ch.isDigit(subjectIdTextField.getText().charAt(0))) {
               PermisPolicyEditorMenu.dialog.showOkDialog(
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_c") + " "+
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_brd_cm_a")+ " " +                      
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_b"));
               subjectIdTextField.requestFocus();
                
               return;
        }
        else if(!validateID(subjectIdTextField.getText().trim())){
            subjectIdTextField.requestFocus();
            return ;
        }
        else {
            if(loader.isID(SUBJECT_DOMAIN_SPEC,subjectIdTextField.getText())){
              PermisPolicyEditorMenu.permisXmlDom.deleteNode(
                                                  SUBJECT_DOMAIN_SPEC, 
                                                  subjectIdTextField.getText());
            }
            
            //check that the Tree has children
            DefaultTreeModel treeModel = (DefaultTreeModel)treeSubject.
                                                                     getModel();
            DefaultMutableTreeNode top = (DefaultMutableTreeNode)treeModel.
                                                                      getRoot();
            
            if (top.getChildCount() < 1) {
                PermisPolicyEditorMenu.dialog.showOkDialog(
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_err_msg_c") + 
                         "\n" +
                         ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                         getString("sub_pol_msg_warn_b")); 
                return;
            }
            PermisPolicyEditorMenu.permisXmlDom.addDomAttr(
                                                  SUBJECT_POLICY ,
                                                  SUBJECT_DOMAIN_SPEC, 
                                                  ID, 
                                                  subjectIdTextField.getText());
            PermisPolicyEditorMenu.permisXmlDom.addDomFromTree(
                                                  treeSubject, 
                                                  SUBJECT_DOMAIN_SPEC, 
                                                  subjectIdTextField.getText());
            PermisPolicyEditorMenu.permisXmlDom.showMessage();
            
            String button = "roleAssignmentButton";
            parent.controlButton(button, true);
        
        }
        if(parent.getPermisParent().getMenuItems().getReadablePolicy() != null){
            parent.getPermisParent().getMenuItems().getReadablePolicy().
                                                   comboBoxSetSelectedIndex( 2);
       }
       parent.putIdHashtable(subjectIdTextField.getText());
       highLighter(subjectIdTextField); 
       subjectIdTextField.requestFocus();  
       performRefresh();
       clearBoxes();
       subjectExcludeButton.setEnabled(false);
       subjectDeleteButton.setEnabled(false);
       subjectInternalFrame.setVisible(false);
    }
    
    /**************************************************************************\
     *                           subjectDeleteButtonActionPerformed           *
    \**************************************************************************/
    
    /**
     * Deletes the selected node from the Subject Policy JTree
     *
     * @param evt       Create/Modify delete button operated
     */
    
    private void subjectDeleteButtonActionPerformed() 
    {
        policySubjectTree.removeCurrentNode();
        
        if(policySubjectTree.isTreeEmpty(treeSubject)){
            subjectExcludeButton.setEnabled(false);
            subjectDeleteButton.setEnabled(false);
        }
      
      
    }
        
    /**
     * Adds the entered data as an exclude node under the selected include node
     * of the Subject Policy JTree/DefaultTreeModel
     *
     * @param evt       Exclude button operated
     */
    
    private void subjectExcludeButtonActionPerformed() 
    {
         if (subjectPolicyLdapDnTextField.getText().trim().equals("")){
              PermisPolicyEditorMenu.dialog.showOkDialog(
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("pol_err_msg_ldapdn") );
            return;
        }
            if(policySubjectTree.excludeNodeAlredayExist(treeSubject,
                               subjectPolicyLdapDnTextField.getText().trim())){
                   PermisPolicyEditorMenu.dialog.showOkDialog(
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("sub_pol_err_msg_c") +  "\n" +
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("sub_pol_msg_dn_subtree") +" " +
                   getString(subjectPolicyLdapDnTextField.getText()) + " "+ 
                   ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
                   getString("sub_pol_msg_dn_exist")); 
                   //subjectPolicyLdapDnTextField.setText("");
                   subjectPolicyLdapDnTextField.requestFocus();                      
                   return;                    
            }
             String s = getSelectedInclude();
             if(s==null) return;

             if(!validateExcludeNode(subjectPolicyLdapDnTextField.getText().trim(), s.trim())){  
                 
                subjectPolicyLdapDnTextField.requestFocus();  
                 return ;
             }
                                   
                if(policySubjectTree.excludeNode(
                                 subjectPolicyLdapDnTextField.getText().trim())){
                  subjectPolicyLdapDnTextField.setText("");
                  subjectPolicyLdapDnTextField.requestFocus(); 
                }
            
        
     subjectPolicyLdapDnTextField.requestFocus(); 
    }
     private String getSelectedInclude()
    {
        DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)
                      treeSubject.getLastSelectedPathComponent();
        if (currentNode==null) return null;

           String s = currentNode.toString();
       s =    s.substring(s.indexOf(":") +1, s.length());
       //System.out.println(s);
        return s.trim();
    }
    private boolean validateExcludeNode( String excludeDN,
                                         String includeDN)
    {
        /* excludeDN is the node to the Excluded from the
         * Include node includeDN. 
         *
         */
        try{
        LDAPEntry exclude = new UserEntry(new LDAPDNPrincipal(excludeDN));
        DITSubtree include = new DITSubtree(
                                new LDAPDNPrincipal(includeDN),
                                0,
                                -1,
                                null,
                                null
                                );
        if(include.contains(exclude)){
            //add the Exclude to the include
            return true;
        }
        else{
            //
            JOptionPane.showMessageDialog(this.parent.getPermisParent(),
            ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
            getString("pol_exclude_dn_err1") + " " +
           getString(excludeDN) + " " + 
           ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
           getString("pol_exclude_dn_err2")+ " " +
           getString(includeDN)+ " "+
           ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
           getString("pol_exclude_dn_err3"),"Error",
     JOptionPane.ERROR_MESSAGE);
            return false;
        }
        
    }
     catch (Throwable th){}
    JOptionPane.showMessageDialog(this.parent.getPermisParent(),
            ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
            getString("pol_exclude_dn_err1") + " " +
           getString(excludeDN) + " " + 
           ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
           getString("pol_exclude_dn_err2")+ " " +
           getString(includeDN)+ " "+
           ResourceBundle.getBundle("issrg/editor/gui/Editor_GUI_i18n").
           getString("pol_exclude_dn_err3"),"Error",
     JOptionPane.ERROR_MESSAGE);
       return false;
    }
    
    
    /**
     *
     * Adds the entered data as an include node under the root node of the
     * Subject Policy JTree/DefaultTreeModel
     *
     * @param evt       Include button operated
     */
    
    private void subjectIncludeButtonActionPerformed() 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -