You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by jm...@apache.org on 2006/09/27 17:05:26 UTC
svn commit: r450468 - in
/maven/continuum/branches/rbac-integration/continuum-webapp/src/main:
java/org/apache/maven/continuum/web/action/
java/org/apache/maven/continuum/web/action/component/
java/org/apache/maven/continuum/web/interceptor/ resources/...
Author: jmcconnell
Date: Wed Sep 27 08:05:25 2006
New Revision: 450468
URL: http://svn.apache.org/viewvc?view=rev&rev=450468
Log:
forced configuration works now, you are forced to make and admin users, forced to login and then forced to edit the configuration...then your good to go
Added:
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java (with props)
Removed:
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SessionAction.java
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/redirectToContinuumInitialization.jsp
Modified:
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/resources/xwork.xml
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/configurationEdit.jsp
maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java Wed Sep 27 08:05:25 2006
@@ -21,8 +21,13 @@
import org.apache.maven.continuum.configuration.ConfigurationStoringException;
import org.apache.maven.continuum.model.system.UserGroup;
import org.apache.maven.continuum.security.ContinuumSecurity;
+import org.apache.maven.continuum.security.ContinuumRoleConstants;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
+import org.codehaus.plexus.security.ui.web.interceptor.SecureActionBundle;
+import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
+import org.codehaus.plexus.security.rbac.Resource;
import java.io.File;
import java.util.Collections;
@@ -37,7 +42,7 @@
*/
public class ConfigurationAction
extends ContinuumActionSupport
- implements Preparable
+ implements Preparable, SecureAction
{
/**
@@ -78,7 +83,7 @@
companyUrl = configuration.getCompanyUrl();
}
- public String execute()
+ public String save()
throws ConfigurationStoringException, ContinuumStoreException
{
@@ -120,18 +125,6 @@
return SUCCESS;
}
- public String doDefault()
- throws Exception
- {
- return SUCCESS;
- }
-
- public String doEdit()
- throws Exception
- {
- return INPUT;
- }
-
public boolean isGuestAccountEnabled()
{
return guestAccountEnabled;
@@ -200,5 +193,16 @@
public void setCompanyUrl( String companyUrl )
{
this.companyUrl = companyUrl;
+ }
+
+
+ public SecureActionBundle getSecureActionBundle()
+ throws SecureActionException
+ {
+ SecureActionBundle bundle = new SecureActionBundle();
+ bundle.setRequiresAuthentication( true );
+ bundle.addRequiredAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_CONFIGURATION, Resource.GLOBAL );
+
+ return bundle;
}
}
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java Wed Sep 27 08:05:25 2006
@@ -40,6 +40,8 @@
{
private int projectGroupId;
+ private String projectGroupName;
+
private int projectId;
private List projectBuildDefinitionSummaries = new ArrayList();
@@ -166,6 +168,16 @@
public void setProjectGroupId( int projectGroupId )
{
this.projectGroupId = projectGroupId;
+ }
+
+ public String getProjectGroupName()
+ {
+ return projectGroupName;
+ }
+
+ public void setProjectGroupName( String projectGroupName )
+ {
+ this.projectGroupName = projectGroupName;
}
public List getProjectBuildDefinitionSummaries()
Added: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java?view=auto&rev=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java (added)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java Wed Sep 27 08:05:25 2006
@@ -0,0 +1,70 @@
+package org.apache.maven.continuum.web.interceptor;
+
+import com.opensymphony.xwork.ActionInvocation;
+import com.opensymphony.xwork.interceptor.Interceptor;
+import org.apache.maven.continuum.Continuum;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * ForceContinuumConfigurationInterceptor:
+ *
+ * @author: Jesse McConnell <jm...@apache.org>
+ * @version: $ID:$
+ * @plexus.component
+ * role="com.opensymphony.xwork.interceptor.Interceptor"
+ * role-hint="forceContinuumConfigurationInterceptor"
+ */
+public class ForceContinuumConfigurationInterceptor
+ extends AbstractLogEnabled
+ implements Interceptor
+{
+ private static boolean checked = false;
+
+ /**
+ * @plexus.requirement
+ */
+ private Continuum continuum;
+
+ public void destroy()
+ {
+ // no-op
+ }
+
+ public void init()
+ {
+
+ }
+
+ public String intercept( ActionInvocation invocation )
+ throws Exception
+ {
+ if ( checked )
+ {
+ return invocation.invoke();
+ }
+
+ if ( !continuum.getConfiguration().isInitialized() )
+ {
+ return "continuum-configuration-required";
+ }
+
+ checked = true;
+
+ return invocation.invoke();
+ }
+}
Propchange: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/java/org/apache/maven/continuum/web/interceptor/ForceContinuumConfigurationInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/resources/xwork.xml?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/resources/xwork.xml Wed Sep 27 08:05:25 2006
@@ -11,11 +11,21 @@
<interceptors>
<interceptor name="exception-logging" class="exceptionLogging"/>
+ <interceptor name="continuumConfigurationCheck" class="forceContinuumConfigurationInterceptor"/>
<interceptor name="pssForceAdminUser" class="pssForceAdminUserInterceptor"/>
<interceptor name="pssSecureActions" class="pssSecureActionInterceptor"/>
<interceptor name="pssEnvironmentChecker" class="pssEnvironmentCheckInterceptor"/>
- <interceptor-stack name="defaultContinuumStack">
+ <interceptor-stack name="configuredContinuumStack">
+ <interceptor-ref name="defaultStack"/>
+ <interceptor-ref name="exception-logging"/>
+ <interceptor-ref name="pssEnvironmentChecker"/>
+ <interceptor-ref name="pssForceAdminUser"/>
+ <interceptor-ref name="pssSecureActions"/>
+ <interceptor-ref name="continuumConfigurationCheck"/>
+ </interceptor-stack>
+
+ <interceptor-stack name="unconfiguredContinuumStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="exception-logging"/>
<interceptor-ref name="pssEnvironmentChecker"/>
@@ -24,18 +34,25 @@
</interceptor-stack>
</interceptors>
- <default-interceptor-ref name="defaultContinuumStack"/>
+ <default-interceptor-ref name="configuredContinuumStack"/>
<global-results>
<result name="error">/error.jsp</result>
<result name="internalError" type="redirect">/error.jsp</result>
- <result name="continuumInitialization" type="redirect">/configuration!input.action</result>
+ <result name="continuum-configuration-required" type="redirect-action">
+ <param name="actionName">configuration</param>
+ <param name="method">input</param>
+ </result>
<!-- The following security-* result names arrive from the plexus-security package -->
<result name="security-login-success" type="redirect-action">groupSummary</result>
<result name="security-login-cancel" type="redirect-action">groupSummary</result>
<result name="security-login-locked" type="redirect-action">groupSummary</result>
<result name="security-logout" type="redirect-action">groupSummary</result>
+ <result name="requires-authentication" type="redirect-action">
+ <param name="actionName">login</param>
+ <param name="namespace">/security</param>
+ </result>
<result name="security-register-success" type="redirect-action">
<param name="actionName">login</param>
<param name="namespace">/security</param>
@@ -72,11 +89,8 @@
<result type="redirect-action">groupSummary</result>
</action>
- <action name="checkConfiguration" class="checkConfiguration">
- <result name="input">/redirectToContinuumInitialization.jsp</result>
- </action>
-
<action name="configuration" class="configuration">
+ <interceptor-ref name="unconfiguredContinuumStack"/>
<result name="input">configurationEdit.jsp</result>
<result name="success">configuration.jsp</result>
</action>
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp Wed Sep 27 08:05:25 2006
@@ -1,7 +1,9 @@
<%@ taglib uri="/webwork" prefix="ww" %>
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
-<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%
<%@ taglib uri="continuum" prefix="c1" %>
+<%@ taglib uri="/plexusSecuritySystem" prefix="pss" %>
+
<ww:i18n name="localization.Continuum">
<ec:table items="allBuildDefinitionSummaries"
var="buildDefinitionSummary"
@@ -21,30 +23,47 @@
<ec:column property="actions" title=" ">
<!-- if the from is PROJECT then render the links differently -->
<ww:if test="${pageScope.buildDefinitionSummary.from == 'PROJECT'}">
- <ww:url id="editUrl" action="buildDefinition" method="input" namespace="/">
- <ww:param name="projectId">${pageScope.buildDefinitionSummary.projectId}</ww:param>
- <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
- </ww:url>
- <ww:url id="removeUrl" action="removeProjectBuildDefinition" namespace="/">
- <ww:param name="projectId">${pageScope.buildDefinitionSummary.projectId}</ww:param>
- <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
- <ww:param name="confirmed" value="false"/>
- </ww:url>
+ <pss:ifAuthorized permission="continuum-modify-project-build-definition" resource="${projectGroupName}">
+ <ww:url id="editUrl" action="buildDefinition" method="input" namespace="/">
+ <ww:param name="projectId">${pageScope.buildDefinitionSummary.projectId}</ww:param>
+ <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
+ </ww:url>
+ <ww:a href="%{editUrl}">
+ <ww:text name="edit"/>
+ </ww:a>
+ </pss:ifAuthorized>
+ <pss:ifAuthorized permission="continuum-remove-project-build-definition" resource="${projectGroupName}">
+ <ww:url id="removeUrl" action="removeProjectBuildDefinition" namespace="/">
+ <ww:param name="projectId">${pageScope.buildDefinitionSummary.projectId}</ww:param>
+ <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
+ <ww:param name="confirmed" value="false"/>
+ </ww:url>
+ <ww:a href="%{removeUrl}">
+ <ww:text name="delete"/>
+ </ww:a>
+ </pss:ifAuthorized>
</ww:if>
<ww:else>
- <ww:url id="editUrl" action="buildDefinition" method="input" namespace="/">
- <ww:param name="projectGroupId">${pageScope.buildDefinitionSummary.projectGroupId}</ww:param>
- <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
- </ww:url>
- <ww:url id="removeUrl" action="removeGroupBuildDefinition" namespace="/">
- <ww:param name="projectGroupId">${pageScope.buildDefinitionSummary.projectGroupId}</ww:param>
- <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
- <ww:param name="confirmed" value="false"/>
- </ww:url>
+ <pss:ifAuthorized permission="continuum-modify-group-build-definition" resource="${projectGroupName}">
+ <ww:url id="editUrl" action="buildDefinition" method="input" namespace="/">
+ <ww:param name="projectGroupId">${pageScope.buildDefinitionSummary.projectGroupId}</ww:param>
+ <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
+ </ww:url>
+ <ww:a href="%{editUrl}">
+ <ww:text name="edit"/>
+ </ww:a>
+ </pss:ifAuthorized>
+ <pss:ifAuthorized permission="continuum-remove-group-build-definition">
+ <ww:url id="removeUrl" action="removeGroupBuildDefinition" namespace="/">
+ <ww:param name="projectGroupId">${pageScope.buildDefinitionSummary.projectGroupId}</ww:param>
+ <ww:param name="buildDefinitionId">${pageScope.buildDefinitionSummary.id}</ww:param>
+ <ww:param name="confirmed" value="false"/>
+ </ww:url>
+ <ww:a href="%{removeUrl}">
+ <ww:text name="delete"/>
+ </ww:a>
+ </pss:ifAuthorized>
</ww:else>
- <ww:a href="%{editUrl}"><ww:text name="edit"/></ww:a>
-
- <ww:a href="%{removeUrl}"><ww:text name="delete"/></ww:a>
</ec:column>
</ec:row>
</ec:table>
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/configurationEdit.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/configurationEdit.jsp?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/configurationEdit.jsp (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/configurationEdit.jsp Wed Sep 27 08:05:25 2006
@@ -9,7 +9,7 @@
<body>
<div id="axial" class="h3">
<h3><ww:text name="configuration.section.title"/></h3>
- <ww:form action="configuration.action" method="post">
+ <ww:form action="configuration!save" method="post">
<div class="axial">
Modified: maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp?view=diff&rev=450468&r1=450467&r2=450468
==============================================================================
--- maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp (original)
+++ maven/continuum/branches/rbac-integration/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp Wed Sep 27 08:05:25 2006
@@ -25,6 +25,7 @@
<ww:action name="groupBuildDefinitionSummary" executeResult="true" namespace="component">
<ww:param name="projectGroupId" value="%{projectGroupId}"/>
+ <ww:param name="projectGroupName" value="%{projectGroup.name}"/>
</ww:action>
</div>
</body>