From: <jbo...@li...> - 2006-04-20 21:26:48
|
Author: adamw Date: 2006-04-20 17:26:37 -0400 (Thu, 20 Apr 2006) New Revision: 3857 Added: labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/jboss-web.xml labs/shotoku/trunk/shotoku-admin/src/web/roles.properties labs/shotoku/trunk/shotoku-admin/src/web/users.properties labs/shotoku/trunk/src/app/META-INF/login-config.xml Modified: labs/shotoku/trunk/shotoku-admin/src/java/org/jboss/shotoku/web/admin/AdminServlet.java labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/AdministratedService.java labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/ShotokuServiceImpl.java labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java Log: http://jira.jboss.com/jira/browse/JBSHOTOKU-82 Modified: labs/shotoku/trunk/shotoku-admin/src/java/org/jboss/shotoku/web/admin/AdminServlet.java =================================================================== --- labs/shotoku/trunk/shotoku-admin/src/java/org/jboss/shotoku/web/admin/AdminServlet.java 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-admin/src/java/org/jboss/shotoku/web/admin/AdminServlet.java 2006-04-20 21:26:37 UTC (rev 3857) @@ -1,6 +1,7 @@ package org.jboss.shotoku.web.admin; import org.jboss.shotoku.service.AdministratedServiceGetter; +import org.jboss.shotoku.service.AdministratedService; import org.jboss.shotoku.tools.Tools; import javax.servlet.http.HttpServlet; @@ -10,19 +11,74 @@ import javax.servlet.ServletResponse; import java.io.IOException; import java.util.Calendar; +import java.util.Set; /** * @author Adam Warski (ad...@as...) */ public class AdminServlet extends HttpServlet { + public static final String SERVICE_JSP = "/repo-access/services.jsp"; + + private AdministratedService getServiceWithId(String serviceId, + Set<AdministratedServiceGetter> asgs) { + for (AdministratedServiceGetter asg : asgs) { + AdministratedService as = asg.getService(); + if (as.getServiceId().equals(serviceId)) { + return as; + } + } + + return null; + } + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Set<AdministratedServiceGetter> asgs = Tools.getService().getAdministratedServices(); + + String action = request.getParameter("action"); + String serviceId = request.getParameter("serviceId"); + + if ("stop".equals(action)) { + AdministratedService as = getServiceWithId(serviceId, asgs); + if (as != null) { + if (!as.getServiceRunnable()) { + request.setAttribute("status", "Service " + as.getServiceName() + + " is already stopped."); + } else { + as.stop(); + request.setAttribute("status", "Service " + as.getServiceName() + " stopped."); + } + } else { + request.setAttribute("status", "Service with id " + serviceId + " not found."); + } + } + + if ("start".equals(action)) { + AdministratedService as = getServiceWithId(serviceId, asgs); + if (as != null) { + if (as.getServiceRunnable()) { + request.setAttribute("status", "Service " + as.getServiceName() + + " is already started."); + } else { + try { + as.start(); + request.setAttribute("status", "Service " + as.getServiceName() + " started."); + } catch (Exception e) { + request.setAttribute("status", "Starting of service " + as.getServiceName() + + " caused an exception: " + e + ". Look in the log for details."); + e.printStackTrace(); + } + } + } else { + request.setAttribute("status", "Service with id " + serviceId + " not found."); + } + } + response.setContentType("text/html"); request.setAttribute("now", Calendar.getInstance().getTimeInMillis()); - request.setAttribute("asgs", Tools.getService().getAdministratedServices()); + request.setAttribute("asgs", asgs); - request.getRequestDispatcher("/repo-access/services.jsp").forward( - request, response); + request.getRequestDispatcher(SERVICE_JSP).forward(request, response); } } Added: labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/jboss-web.xml =================================================================== --- labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/jboss-web.xml 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/jboss-web.xml 2006-04-20 21:26:37 UTC (rev 3857) @@ -0,0 +1,9 @@ +<?xml version='1.0' encoding='UTF-8' ?> + +<!DOCTYPE jboss-web + PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN" + "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd"> + +<jboss-web> + <security-domain>java:/jaas/shotoku</security-domain> +</jboss-web> Modified: labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml =================================================================== --- labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml 2006-04-20 21:26:37 UTC (rev 3857) @@ -33,4 +33,22 @@ <servlet-name>Admin Servlet</servlet-name> <url-pattern>/admin/*</url-pattern> </servlet-mapping> + + <security-constraint> + <web-resource-collection> + <web-resource-name>All resources</web-resource-name> + <url-pattern>/*</url-pattern> + </web-resource-collection> + <auth-constraint> + <role-name>ShotokuAdmin</role-name> + </auth-constraint> + </security-constraint> + + <security-role> + <role-name>ShotokuAdmin</role-name> + </security-role> + + <login-config> + <auth-method>BASIC</auth-method> + </login-config> </web-app> Added: labs/shotoku/trunk/shotoku-admin/src/web/roles.properties =================================================================== --- labs/shotoku/trunk/shotoku-admin/src/web/roles.properties 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-admin/src/web/roles.properties 2006-04-20 21:26:37 UTC (rev 3857) @@ -0,0 +1 @@ +ShotokuAdmin=ShotokuAdmin \ No newline at end of file Added: labs/shotoku/trunk/shotoku-admin/src/web/users.properties =================================================================== --- labs/shotoku/trunk/shotoku-admin/src/web/users.properties 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-admin/src/web/users.properties 2006-04-20 21:26:37 UTC (rev 3857) @@ -0,0 +1 @@ +ShotokuAdmin=ShotokuAdmin \ No newline at end of file Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/AdministratedService.java =================================================================== --- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/AdministratedService.java 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/AdministratedService.java 2006-04-20 21:26:37 UTC (rev 3857) @@ -13,6 +13,7 @@ public boolean getServiceRunnable(); public void setServiceRunnable(boolean runnable); + public String getServiceId(); public String getServiceName(); public String getServiceDescription(); Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/ShotokuServiceImpl.java =================================================================== --- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/ShotokuServiceImpl.java 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/service/ShotokuServiceImpl.java 2006-04-20 21:26:37 UTC (rev 3857) @@ -173,6 +173,11 @@ * Description functions. */ + + public String getServiceId() { + return "ShotokuService"; + } + public String getServiceName() { return "Shotoku service"; } Modified: labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java =================================================================== --- labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 2006-04-20 21:26:37 UTC (rev 3857) @@ -146,12 +146,16 @@ } } + public String getServiceId() { + return "ShotokuSvnService"; + } + public String getServiceName() { return "SVN service"; } public String getServiceDescription() { - StringBuffer sb = new StringBuffer("These repositories are currently serviced: "); + StringBuffer sb = new StringBuffer("These repositories are currently handled: "); for (String id : repositories.keySet()) { sb.append(id).append(" "); } Added: labs/shotoku/trunk/src/app/META-INF/login-config.xml =================================================================== --- labs/shotoku/trunk/src/app/META-INF/login-config.xml 2006-04-20 20:19:16 UTC (rev 3856) +++ labs/shotoku/trunk/src/app/META-INF/login-config.xml 2006-04-20 21:26:37 UTC (rev 3857) @@ -0,0 +1,16 @@ +<?xml version='1.0'?> +<!DOCTYPE policy PUBLIC + "-//JBoss//DTD JBOSS Security Config 3.0//EN" + "http://www.jboss.org/j2ee/dtd/security_config.dtd"> + +<policy> + <application-policy name="shotoku"> + <authentication> + <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" + flag="required"> + <module-option name="usersProperties">users.properties</module-option> + <module-option name="rolesProperties">users.properties</module-option> + </login-module> + </authentication> + </application-policy> +</policy> |