KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jguard > example > struts > admin > actions > DomainDispatchAction


1 /*
2 jGuard is a security framework based on top of jaas (java authentication and authorization security).
3 it is written for web applications, to resolve simply, access control problems.
4 version $Name$
5 http://sourceforge.net/projects/jguard/
6
7 Copyright (C) 2004 Charles GAY
8
9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Lesser General Public
11 License as published by the Free Software Foundation; either
12 version 2.1 of the License, or (at your option) any later version.
13
14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Lesser General Public License for more details.
18
19 You should have received a copy of the GNU Lesser General Public
20 License along with this library; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
23
24 jGuard project home page:
25 http://sourceforge.net/projects/jguard/
26
27 */

28 package net.sf.jguard.example.struts.admin.actions;
29
30 import java.security.AccessController JavaDoc;
31 import java.util.ArrayList JavaDoc;
32 import java.util.Iterator JavaDoc;
33 import java.util.List JavaDoc;
34 import java.util.Set JavaDoc;
35
36 import javax.servlet.http.HttpServletRequest JavaDoc;
37 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
51  * @author <a HREF="mailto:diabolo512@users.sourceforge.net ">Charles Gay</a>
52  *
53  */

54 public class DomainDispatchAction extends BaseAction{
55
56     private static Logger logger = Logger.getLogger(DomainDispatchAction.class);
57
58     /**
59      * create an URLDomain.
60      * @param mapping
61      * @param form
62      * @param request
63      * @param response
64      * @return
65      */

66     public ActionForward create(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
67
68         DynaActionForm dyna = (DynaActionForm)form;
69         String JavaDoc domainName = (String JavaDoc)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     /**
81      * delete an URLDomain.
82      * @param mapping
83      * @param form
84      * @param request
85      * @param response
86      * @return
87      */

88     public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
89
90         DynaActionForm dyna = (DynaActionForm)form;
91         String JavaDoc domainName = (String JavaDoc)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     /**
103      * list URLDomains and permissions.
104      * @param mapping
105      * @param form
106      * @param request
107      * @param response
108      * @return
109      */

110     public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
111         DynaActionForm dyna = (DynaActionForm)form;
112         Set JavaDoc 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 JavaDoc itDomains = domains.iterator();
121         List JavaDoc domainsList = new ArrayList JavaDoc();
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 JavaDoc sex){
130                 logger.error(" access is denied ",sex);
131             } catch (IllegalArgumentException JavaDoc e) {
132                 logger.error(" bad uri synthax ",e);
133             }
134         }
135         return mapping.findForward("listDomainsOK");
136
137     }
138
139     /**
140      * update an URLDomain name.
141      * @param mapping
142      * @param form
143      * @param request
144      * @param response
145      * @return
146      */

147     public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
148         DynaActionForm dyna = (DynaActionForm)form;
149         AuthorizationManager am = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER);
150         try {
151             am.updateDomain((String JavaDoc)dyna.get("domainName"),(String JavaDoc)dyna.get("oldDomainName"));
152
153         } catch (AuthorizationException e) {
154             logger.error("domain "+(String JavaDoc)dyna.get("domainName")+" cannot be updated",e);
155         }
156
157         return mapping.findForward("updateDomainOK");
158
159     }
160 }
161
Popular Tags