📄 permissubjectpolicy.java
字号:
*/
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 + -