1 19 20 package com.sslexplorer.policyframework.forms; 21 22 import java.lang.reflect.Constructor ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 26 import javax.servlet.http.HttpServletRequest ; 27 import javax.servlet.http.HttpSession ; 28 29 import org.apache.struts.Globals; 30 import org.apache.struts.action.ActionErrors; 31 import org.apache.struts.action.ActionMapping; 32 import org.apache.struts.action.ActionMessage; 33 34 import com.sslexplorer.core.BundleActionMessage; 35 import com.sslexplorer.policyframework.Policy; 36 import com.sslexplorer.policyframework.PolicyConstants; 37 import com.sslexplorer.policyframework.PolicyDatabaseFactory; 38 import com.sslexplorer.policyframework.PolicyItem; 39 import com.sslexplorer.policyframework.Resource; 40 import com.sslexplorer.policyframework.ResourceUtil; 41 import com.sslexplorer.security.AuthenticationScheme; 42 import com.sslexplorer.security.DefaultAuthenticationScheme; 43 import com.sslexplorer.security.LogonControllerFactory; 44 import com.sslexplorer.security.SessionInfo; 45 46 47 public class PoliciesForm extends AbstractResourcesForm { 48 public PoliciesForm() { 49 super("policies"); 50 } 51 52 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { 53 ActionErrors errs = new ActionErrors(); 54 if (this.getActionTarget() != null && this.getActionTarget().equals("confirmRemove")) { 56 SessionInfo info = LogonControllerFactory.getInstance().getSessionInfo(request); 57 boolean found = false; 58 59 try { 60 List authSchemes = ResourceUtil.getGrantedResource(info, PolicyConstants.AUTHENTICATION_SCHEMES_RESOURCE_TYPE); 61 for (Iterator iter = authSchemes.iterator(); iter.hasNext();) { 62 AuthenticationScheme element = (DefaultAuthenticationScheme) iter.next(); 63 if (!element.isSystemScheme() && element.getEnabled()) { 64 List attachedPolicies = PolicyDatabaseFactory.getInstance().getPoliciesAttachedToResource( 65 element, info.getUser().getRealm()); 66 for (Iterator iterator = attachedPolicies.iterator(); iterator.hasNext();) { 67 Policy policy = (Policy) iterator.next(); 68 if (policy.getResourceId() != this.selectedResource && PolicyDatabaseFactory.getInstance().isPolicyGrantedToUser(policy, 70 info.getUser())) { 71 found = true; 72 break; 73 } 74 } 75 } 76 } 77 } catch (Exception e) { 78 errs.add(Globals.ERROR_KEY, new ActionMessage("authenticationSchemes.error.failedToValidateSuperUserAuthSchemeConnection")); 79 } 80 81 try { 82 if (!found) { 83 errs.add(Globals.ERROR_KEY, new BundleActionMessage("security", "authenticationSchemes.error.mustHavePolicySuperUserAssociation")); 84 } 85 } catch (RuntimeException e) { 86 e.printStackTrace(); 87 } 88 89 } 90 return errs; 91 } 92 93 public void initialize(List resources, Class resourceItemClass, HttpSession session, String defaultSortColumnId) { 94 super.initialize(session, defaultSortColumnId); 95 launchedPolicy = -1; 96 try { 97 for (Iterator i = resources.iterator(); i.hasNext();) { 98 Resource dr = (Resource) i.next(); 99 Constructor c = resourceItemClass.getConstructor(new Class [] { Resource.class, List .class }); 100 List policies = PolicyDatabaseFactory.getInstance().getPoliciesAttachedToResource(dr, 101 LogonControllerFactory.getInstance().getSessionInfo(session).getUser().getRealm()); 102 PolicyItem item = new PolicyItem(dr, policies); 103 getModel().addItem(item); 104 } 105 getPager().rebuild(getFilterText()); 106 } catch (Throwable t) { 107 log.error("Failed to initialise resources form.", t); 108 } 109 } 110 111 } | Popular Tags |