diff --git a/Jenkinsfile b/Jenkinsfile index 7555af91..c3345b66 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,14 +3,7 @@ def kubeLabel = getKubeLabel() pipeline { - agent { - kubernetes { - label "${kubeLabel}" - cloud 'Kube mwdevel' - defaultContainer 'runner' - inheritFrom 'ci-template' - } - } + agent none parameters { booleanParam(name: 'BUILD_DOCKER_IMAGES', defaultValue: false, @@ -27,6 +20,7 @@ pipeline { stages{ stage('build') { + agent { label 'java11' } steps { git(url: 'https://github.com/italiangrid/voms-admin-server.git', branch: env.BRANCH_NAME) sh 'mvn -B -U -P prod,EMI clean package' @@ -34,6 +28,7 @@ pipeline { } stage('build-docker-images') { + agent { label 'docker' } when { expression { return params.BUILD_DOCKER_IMAGES } } diff --git a/pom.xml b/pom.xml index 47934cdc..4e32eedc 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ voms-admin-parent - 3.8.1 + 3.9.0 pom VOMS Admin Parent POM diff --git a/voms-admin-api/pom.xml b/voms-admin-api/pom.xml index deabe256..879c0149 100644 --- a/voms-admin-api/pom.xml +++ b/voms-admin-api/pom.xml @@ -5,7 +5,7 @@ org.italiangrid voms-admin-parent - 3.8.1 + 3.9.0 voms-admin-api diff --git a/voms-admin-server/pom.xml b/voms-admin-server/pom.xml index ed0b8667..c05ff6b2 100644 --- a/voms-admin-server/pom.xml +++ b/voms-admin-server/pom.xml @@ -26,7 +26,7 @@ org.italiangrid voms-admin-parent - 3.8.1 + 3.9.0 voms-admin-server @@ -38,7 +38,7 @@ ${project.version} 2.0.2 - 2.5.26 + 2.5.33 2.5.2 4.0.3 5.2.17.Final @@ -316,7 +316,7 @@ org.apache.commons commons-email - 1.1 + 1.5 diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfiguration.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfiguration.java index f6c781d2..7ef85ff0 100644 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfiguration.java +++ b/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfiguration.java @@ -15,7 +15,6 @@ */ package org.glite.security.voms.admin.configuration; -import static org.glite.security.voms.admin.configuration.VOMSConfigurationConstants.PERMISSION_CACHE_DISABLE; import static org.glite.security.voms.admin.configuration.VOMSConfigurationConstants.PI_REQUIRED_FIELDS; import static org.glite.security.voms.admin.util.SysconfigUtil.SYSCONFIG_CONF_DIR; import static org.glite.security.voms.admin.util.SysconfigUtil.SYSCONFIG_DEFAULT_FILE_PATH; @@ -1039,10 +1038,6 @@ public PEMCredential getServiceCredential() { return serviceCredential; } - public boolean permissionCacheDisabled() { - return config.getBoolean(PERMISSION_CACHE_DISABLE, false); - } - public Set getRequiredPersonalInfoFields() { String requiredFields = config.getString(PI_REQUIRED_FIELDS, VOMSConfigurationConstants.PI_REQUIRED_FIELDS_DEFAULT); diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfigurationConstants.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfigurationConstants.java index 4fbc7bcd..cd01ce14 100644 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfigurationConstants.java +++ b/voms-admin-server/src/main/java/org/glite/security/voms/admin/configuration/VOMSConfigurationConstants.java @@ -197,11 +197,6 @@ public interface VOMSConfigurationConstants { */ public static final String SKIP_CA_CHECK = "voms.skip_ca_check"; - /** - * Should permission cache be disabled? - */ - public static final String PERMISSION_CACHE_DISABLE = "voms.permission_cache.disable"; - /** * comma-separated list of the personal information fields required at registration */ diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/VOMSService.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/VOMSService.java index 3c07b210..8257bfcc 100644 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/VOMSService.java +++ b/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/VOMSService.java @@ -36,7 +36,6 @@ import org.glite.security.voms.admin.configuration.VOMSConfigurationException; import org.glite.security.voms.admin.core.tasks.CancelSignAUPTasksForExpiredUsersTask; import org.glite.security.voms.admin.core.tasks.ExpiredRequestsPurgerTask; -import org.glite.security.voms.admin.core.tasks.PermissionCacheStatsLogger; import org.glite.security.voms.admin.core.tasks.PrintX509AAStatsTask; import org.glite.security.voms.admin.core.tasks.SignAUPReminderCheckTask; import org.glite.security.voms.admin.core.tasks.SystemTimeProvider; @@ -52,9 +51,6 @@ import org.glite.security.voms.admin.event.DebugEventLogListener; import org.glite.security.voms.admin.event.EventManager; import org.glite.security.voms.admin.event.auditing.AuditLog; -import org.glite.security.voms.admin.event.permission_cache.AclEventsCleanPermissionCacheListener; -import org.glite.security.voms.admin.event.permission_cache.MembershipEventsCleanPermissionCacheListener; -import org.glite.security.voms.admin.event.permission_cache.UserEventsCleanPermissionCacheListener; import org.glite.security.voms.admin.integration.PluginManager; import org.glite.security.voms.admin.integration.cern.HrDbConfigurator; import org.glite.security.voms.admin.integration.orgdb.OrgDBConfigurator; @@ -169,9 +165,6 @@ protected static void configureEventManager() { manager.register(CertificateRequestsNotificationDispatcher.instance()); manager.register(MembershipRemovalNotificationDispatcher.instance()); manager.register(SignAUPReminderDispatcher.instance()); - manager.register(AclEventsCleanPermissionCacheListener.instance()); - manager.register(UserEventsCleanPermissionCacheListener.instance()); - manager.register(MembershipEventsCleanPermissionCacheListener.instance()); } @@ -212,8 +205,6 @@ protected static void startBackgroundTasks() { VOMSConfigurationConstants.MONITORING_USER_STATS_UPDATE_PERIOD, UserStatsTask.DEFAULT_PERIOD_IN_SECONDS); - es.scheduleAtFixedRate(new PermissionCacheStatsLogger(true), 1, 60, TimeUnit.SECONDS); - int expiredUserCleanupBatchSize = conf.getInt(VOMSConfigurationConstants.EXPIRED_USER_CLEANUP_TASK_BATCH_SIZE, 10); diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/tasks/PermissionCacheStatsLogger.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/tasks/PermissionCacheStatsLogger.java deleted file mode 100644 index d13bb43d..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/core/tasks/PermissionCacheStatsLogger.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.core.tasks; - -import org.glite.security.voms.admin.operations.util.CurrentAdminPermissionCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.cache.CacheStats; - -public class PermissionCacheStatsLogger implements Runnable { - - private static final Logger LOG = LoggerFactory - .getLogger(PermissionCacheStatsLogger.class); - private final boolean dumpCache; - - public PermissionCacheStatsLogger() { - dumpCache = false; - } - - public PermissionCacheStatsLogger(boolean dumpCache) { - this.dumpCache = dumpCache; - } - - @Override - public void run() { - CacheStats stats = CurrentAdminPermissionCache.INSTANCE.stats(); - - LOG.debug("Permission check cache stats: {}", stats); - - if (dumpCache){ - CurrentAdminPermissionCache.INSTANCE.dumpToLog(); - } - - } - -} diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/AclEventsCleanPermissionCacheListener.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/AclEventsCleanPermissionCacheListener.java deleted file mode 100644 index 3b86c34d..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/AclEventsCleanPermissionCacheListener.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.event.permission_cache; -import java.util.EnumSet; - -import org.glite.security.voms.admin.event.AbstractEventLister; -import org.glite.security.voms.admin.event.EventCategory; -import org.glite.security.voms.admin.event.vo.acl.ACLEvent; -import org.glite.security.voms.admin.operations.util.CurrentAdminPermissionCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AclEventsCleanPermissionCacheListener extends AbstractEventLister{ - - public static final Logger LOG = LoggerFactory.getLogger(AclEventsCleanPermissionCacheListener.class); - - public AclEventsCleanPermissionCacheListener() { - super(EnumSet.of(EventCategory.VOLifecycleEvent), ACLEvent.class); - - } - - @Override - protected void doFire(ACLEvent e) { - LOG.info("Cleaning permission cache as result of {}",e); - CurrentAdminPermissionCache.INSTANCE.clean(); - } - - public static AclEventsCleanPermissionCacheListener instance(){ - return new AclEventsCleanPermissionCacheListener(); - } -} \ No newline at end of file diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/MembershipEventsCleanPermissionCacheListener.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/MembershipEventsCleanPermissionCacheListener.java deleted file mode 100644 index 84461740..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/MembershipEventsCleanPermissionCacheListener.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.event.permission_cache; - -import java.util.EnumSet; - -import org.glite.security.voms.admin.event.AbstractEventLister; -import org.glite.security.voms.admin.event.EventCategory; -import org.glite.security.voms.admin.event.user.membership.UserMembershipEvent; -import org.glite.security.voms.admin.operations.util.CurrentAdminPermissionCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class MembershipEventsCleanPermissionCacheListener extends AbstractEventLister { - - public static final Logger LOG = LoggerFactory.getLogger(MembershipEventsCleanPermissionCacheListener.class); - - private MembershipEventsCleanPermissionCacheListener() { - super(EnumSet.of(EventCategory.UserMembershipEvent), UserMembershipEvent.class); - } - - @Override - protected void doFire(UserMembershipEvent e) { - LOG.info("Cleaning permission cache as result of {}",e); - CurrentAdminPermissionCache.INSTANCE.clean(); - } - - public static MembershipEventsCleanPermissionCacheListener instance() { - return new MembershipEventsCleanPermissionCacheListener(); - } -} diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/UserEventsCleanPermissionCacheListener.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/UserEventsCleanPermissionCacheListener.java deleted file mode 100644 index 6cde8059..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/event/permission_cache/UserEventsCleanPermissionCacheListener.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.event.permission_cache; - -import java.util.EnumSet; - -import org.glite.security.voms.admin.event.AbstractEventLister; -import org.glite.security.voms.admin.event.EventCategory; -import org.glite.security.voms.admin.event.user.UserCreatedEvent; -import org.glite.security.voms.admin.event.user.UserDeletedEvent; -import org.glite.security.voms.admin.event.user.UserLifecycleEvent; -import org.glite.security.voms.admin.operations.util.CurrentAdminPermissionCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class UserEventsCleanPermissionCacheListener extends AbstractEventLister{ - - public static final Logger LOG = LoggerFactory.getLogger(UserEventsCleanPermissionCacheListener.class); - - private UserEventsCleanPermissionCacheListener() { - super(EnumSet.of(EventCategory.UserLifecycleEvent), UserLifecycleEvent.class); - - } - - @Override - protected void doFire(UserLifecycleEvent e) { - - if (e instanceof UserDeletedEvent || e instanceof UserCreatedEvent){ - LOG.info("Cleaning permission cache as result of {}",e); - CurrentAdminPermissionCache.INSTANCE.clean(); - } - } - - public static UserEventsCleanPermissionCacheListener instance(){ - return new UserEventsCleanPermissionCacheListener(); - } - -} diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/CurrentAdmin.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/CurrentAdmin.java index 4c2cbbcb..0a55ae50 100644 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/CurrentAdmin.java +++ b/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/CurrentAdmin.java @@ -18,12 +18,9 @@ import java.security.cert.X509Certificate; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutionException; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.glite.security.voms.admin.configuration.VOMSConfiguration; -import org.glite.security.voms.admin.operations.util.CurrentAdminPermissionCache; import org.glite.security.voms.admin.persistence.dao.VOMSAdminDAO; import org.glite.security.voms.admin.persistence.dao.VOMSRoleDAO; import org.glite.security.voms.admin.persistence.dao.VOMSUserDAO; @@ -48,16 +45,14 @@ public class CurrentAdmin { private static ThreadLocal currentAdmin = new ThreadLocal<>(); private final VOMSAdmin admin; - private final boolean permissionCacheDisabled; public VOMSAdmin getAdmin() { return admin; } - protected CurrentAdmin(VOMSAdmin a, boolean permissionCacheDisabled) { + protected CurrentAdmin(VOMSAdmin a) { this.admin = a; - this.permissionCacheDisabled = permissionCacheDisabled; } private static VOMSAdmin lookupAdmin() { @@ -79,9 +74,8 @@ public static CurrentAdmin instance() { if (admin == null) { admin = VOMSAdminDAO.instance().getAnyAuthenticatedUserAdmin(); } - - VOMSConfiguration configuration = VOMSConfiguration.instance(); - currentAdmin.set(new CurrentAdmin(admin, configuration.permissionCacheDisabled())); + + currentAdmin.set(new CurrentAdmin(admin)); return currentAdmin.get(); } @@ -313,20 +307,7 @@ public boolean checkPermission(VOMSContext c, VOMSPermission p) { public boolean hasPermissions(VOMSContext c, VOMSPermission p) { - boolean result = false; - - if (permissionCacheDisabled){ - return checkPermission(c, p); - } - - try { - result = CurrentAdminPermissionCache.INSTANCE.hasPermission(this, c, p); - } catch (ExecutionException e) { - log.error("Error loading permission check result from cache: " + e.getMessage(), e); - result = checkPermission(c, p); - } - - return result; + return checkPermission(c, p); } public String getRealSubject() { diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CleanAdminPermissionCacheOperation.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CleanAdminPermissionCacheOperation.java deleted file mode 100644 index 322c76cd..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CleanAdminPermissionCacheOperation.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.operations.util; - -import java.util.concurrent.Callable; - -import org.glite.security.voms.admin.operations.VOAdminOperation; - -import com.google.common.cache.CacheStats; - -public class CleanAdminPermissionCacheOperation - implements Callable { - - private CleanAdminPermissionCacheOperation() { - // TODO Auto-generated constructor stub - } - - @Override - public CacheStats call() throws Exception { - CacheStats stats = CurrentAdminPermissionCache.INSTANCE.stats(); - CurrentAdminPermissionCache.INSTANCE.clean(); - return stats; - } - - - public static VOAdminOperation instance(){ - CleanAdminPermissionCacheOperation op = - new CleanAdminPermissionCacheOperation(); - - return new VOAdminOperation<>(op); - } -} diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CurrentAdminPermissionCache.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CurrentAdminPermissionCache.java deleted file mode 100644 index 1ba00122..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/operations/util/CurrentAdminPermissionCache.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.operations.util; - -import java.util.Map; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; - -import org.glite.security.voms.admin.operations.CurrentAdmin; -import org.glite.security.voms.admin.operations.VOMSContext; -import org.glite.security.voms.admin.operations.VOMSPermission; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.CacheStats; -import com.google.common.cache.LoadingCache; - -public enum CurrentAdminPermissionCache { - - INSTANCE; - - private Logger log = LoggerFactory.getLogger(CurrentAdminPermissionCache.class); - - private LoadingCache cache; - - private CurrentAdminPermissionCache() { - cache = CacheBuilder.newBuilder() - .maximumSize(1000) - .expireAfterWrite(5, TimeUnit.MINUTES) - .recordStats() - .build(new CheckResultCacheLoader()); - } - - public boolean hasPermission(CurrentAdmin admin, VOMSContext c, - VOMSPermission p) throws ExecutionException { - - PermissionCheck key = PermissionCheckImpl.instance(admin, c, p); - return cache.get(key); - } - - public void clean(){ - log.debug("Cleaning cache"); - cache.invalidateAll(); - } - - static class CheckResultCacheLoader - extends CacheLoader { - - private static final Logger LOG = LoggerFactory - .getLogger(CheckResultCacheLoader.class); - - @Override - public Boolean load(PermissionCheck key) throws Exception { - - boolean result = key.getAdmin() - .checkPermission(key.getContext(), key.getPermission()); - - if (LOG.isDebugEnabled()) { - LOG.debug("Permission check result: {} -> {}", key, result); - } - - return result; - } - - } - - public CacheStats stats(){ - return cache.stats(); - } - - public void dumpToLog() { - log.debug("Cache size: {}", cache.size()); - log.debug("Cache dump:"); - for (Map.Entry e: cache.asMap().entrySet()){ - log.debug("{} -> {}", e.getKey(), e.getValue()); - } - } - -} diff --git a/voms-admin-server/src/main/java/org/glite/security/voms/admin/view/actions/admin/CleanPermissionCacheAction.java b/voms-admin-server/src/main/java/org/glite/security/voms/admin/view/actions/admin/CleanPermissionCacheAction.java deleted file mode 100644 index 4aa8f098..00000000 --- a/voms-admin-server/src/main/java/org/glite/security/voms/admin/view/actions/admin/CleanPermissionCacheAction.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 - * - * 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. - */ -package org.glite.security.voms.admin.view.actions.admin; - -import org.apache.struts2.convention.annotation.Result; -import org.glite.security.voms.admin.operations.util.CleanAdminPermissionCacheOperation; -import org.glite.security.voms.admin.view.actions.BaseAction; - -@Result(name = BaseAction.SUCCESS,location = "adminHome") -public class CleanPermissionCacheAction extends BaseAction{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public String execute() throws Exception { - CleanAdminPermissionCacheOperation.instance().execute(); - // FIXME: do something with the stats? - addActionMessage("Permission cache cleaned"); - return SUCCESS; - } - -} diff --git a/voms-container/pom.xml b/voms-container/pom.xml index 39b6ecaa..10b87cc1 100644 --- a/voms-container/pom.xml +++ b/voms-container/pom.xml @@ -23,7 +23,7 @@ org.italiangrid voms-admin-parent - 3.8.1 + 3.9.0 voms-container