📄 policyform.java
字号:
package com.sslexplorer.policyframework.forms;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.sslexplorer.boot.PropertyList;
import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.core.CoreUtil;
import com.sslexplorer.core.forms.CoreForm;
import com.sslexplorer.input.MultiSelectDataSource;
import com.sslexplorer.input.MultiSelectSelectionModel;
import com.sslexplorer.policyframework.DelegatedPoliciesDataSource;
import com.sslexplorer.policyframework.Policy;
import com.sslexplorer.policyframework.PolicyConstants;
import com.sslexplorer.policyframework.Principal;
import com.sslexplorer.policyframework.Resource;
import com.sslexplorer.security.Constants;
import com.sslexplorer.security.Role;
import com.sslexplorer.security.User;
import com.sslexplorer.tabs.TabModel;
public class PolicyForm extends AbstractResourceForm implements TabModel {
final static Log log = LogFactory.getLog(PoliciesForm.class);
private PropertyList selectedAccounts;
private PropertyList selectedRoles;
private String selectedTab = "details";
public PolicyForm() {
super();
selectedAccounts = new PropertyList();
selectedRoles = new PropertyList();
}
public String getSelectedAccounts() {
return selectedAccounts.getAsTextFieldText();
}
public void setSelectedAccounts(String selectedAccounts) {
this.selectedAccounts.setAsTextFieldText(selectedAccounts);
}
public String getSelectedRoles() {
return selectedRoles.getAsTextFieldText();
}
public void setSelectedRoles(String selectedRoles) {
this.selectedRoles.setAsTextFieldText(selectedRoles);
}
public int getTabCount() {
return 3;
}
public String getTabTitle(int idx) {
// Get title from resources
return null;
}
public String getTabName(int idx) {
switch (idx) {
case 0:
return "details";
case 1:
return "principals";
default:
return "nestedPolicies";
}
}
/**
* @param selectedAccounts The selectedAccounts to set.
*/
public void setSelectedAccounts(PropertyList selectedAccounts) {
this.selectedAccounts = selectedAccounts;
}
/**
* @param selectedRoles The selectedRoles to set.
*/
public void setSelectedRoles(PropertyList selectedRoles) {
this.selectedRoles = selectedRoles;
}
public PropertyList getSelectedAccountsList() {
return selectedAccounts;
}
public PropertyList getSelectedRolesList() {
return selectedRoles;
}
public Resource getResourceByName(String name) throws Exception {
return CoreServlet.getServlet().getPolicyDatabase().getPolicyByName(name);
}
/*
* (non-Javadoc)
*
* @see com.sslexplorer.policyframework.forms.AbstractResourceForm#initialise(com.sslexplorer.boot.policyframework.Resource,
* boolean, com.sslexplorer.boot.MultiSelectSelectionModel,
* com.sslexplorer.boot.PropertyList, com.sslexplorer.security.User)
*/
public void initialise(User user, Resource resource, boolean editing, MultiSelectSelectionModel policyModel,
PropertyList selectedPolicies, User owner) throws Exception {
super.initialise(user, resource, editing, policyModel, selectedPolicies, owner);
Policy pol = (Policy)resource;
PropertyList nestedPolicies = new PropertyList();
int[] childPolicies = pol.getChildPolicies();
for(int i = 0; i < childPolicies.length; i++) {
nestedPolicies.add(String.valueOf(childPolicies[i]));
}
selectedAccounts = new PropertyList();
selectedRoles = new PropertyList();
List principals = CoreServlet.getServlet().getPolicyDatabase().getPrincipalsGrantedPolicy((Policy) resource);
for (Iterator i = principals.iterator(); i.hasNext();) {
Principal p = (Principal) i.next();
if (p instanceof Role) {
selectedRoles.add(p.getPrincipalName());
} else {
selectedAccounts.add(p.getPrincipalName());
}
}
}
public String getSelectedTab() {
return selectedTab;
}
public void setSelectedTab(String selectedTab) {
this.selectedTab = selectedTab;
}
public void applyToResource() throws Exception {
Policy pol = (Policy)getResource();
if(pol.getResourceId() != PolicyConstants.EVERYONE_POLICY_ID) {
pol.setChildPolicies(getSelectedPoliciesList().toIntArray());
}
}
/* (non-Javadoc)
* @see com.sslexplorer.tabs.TabModel#getTabBundle(int)
*/
public String getTabBundle(int idx) {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -