| 1 28 package net.sf.jguard.example.struts.admin.actions; 29 30 import java.security.AccessController ; 31 import java.util.ArrayList ; 32 import java.util.Iterator ; 33 import java.util.List ; 34 import java.util.Set ; 35 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 39 import net.sf.jguard.core.authorization.permissions.URLPermission; 40 import net.sf.jguard.example.struts.actions.BaseAction; 41 import net.sf.jguard.ext.SecurityConstants; 42 import net.sf.jguard.ext.authorization.AuthorizationException; 43 import net.sf.jguard.ext.authorization.manager.AuthorizationManager; 44 45 import org.apache.log4j.Logger; 46 import org.apache.struts.action.ActionForm; 47 import org.apache.struts.action.ActionForward; 48 import org.apache.struts.action.ActionMapping; 49 import org.apache.struts.action.DynaActionForm; 50 54 public class DomainDispatchAction extends BaseAction{ 55 56 private static Logger logger = Logger.getLogger(DomainDispatchAction.class); 57 58 66 public ActionForward create(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 67 68 DynaActionForm dyna = (DynaActionForm)form; 69 String domainName = (String )dyna.get("domainName"); 70 AuthorizationManager am = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER); 71 try { 72 am.createDomain(domainName); 73 } catch (AuthorizationException e) { 74 logger.error("domain "+domainName+" cannot be created",e); 75 } 76 return mapping.findForward("createDomainOK"); 77 78 } 79 80 88 public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 89 90 DynaActionForm dyna = (DynaActionForm)form; 91 String domainName = (String )dyna.get("domainName"); 92 AuthorizationManager am = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER); 93 try { 94 am.deleteDomain(domainName); 95 } catch (AuthorizationException e) { 96 logger.error("domain "+domainName+" cannot be deleted ",e); 97 } 98 return mapping.findForward("deleteDomainOK"); 99 100 } 101 102 110 public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 111 DynaActionForm dyna = (DynaActionForm)form; 112 Set domains = null; 113 114 AuthorizationManager am = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER); 115 try { 116 domains = am.listDomains(); 117 } catch (AuthorizationException e) { 118 logger.error("domains cannot be list ",e); 119 } 120 Iterator itDomains = domains.iterator(); 121 List domainsList = new ArrayList (); 122 while(itDomains.hasNext()){ 123 domainsList.add(itDomains.next()); 124 } 125 dyna.set("Domains",domainsList); 126 if(System.getSecurityManager()!=null){ 127 try{ 128 AccessController.checkPermission(new URLPermission("toto","/jGuardExample/AccessDenied.do,http,blabla")); 129 }catch(SecurityException sex){ 130 logger.error(" access is denied ",sex); 131 } catch (IllegalArgumentException e) { 132 logger.error(" bad uri synthax ",e); 133 } 134 } 135 return mapping.findForward("listDomainsOK"); 136 137 } 138 139 147 public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 148 DynaActionForm dyna = (DynaActionForm)form; 149 AuthorizationManager am = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER); 150 try { 151 am.updateDomain((String )dyna.get("domainName"),(String )dyna.get("oldDomainName")); 152 153 } catch (AuthorizationException e) { 154 logger.error("domain "+(String )dyna.get("domainName")+" cannot be updated",e); 155 } 156 157 return mapping.findForward("updateDomainOK"); 158 159 } 160 } 161 | Popular Tags |