/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.security; import java.io.IOException; import org.geoserver.config.util.XStreamPersister; import org.geoserver.security.config.SecurityNamedServiceConfig; import org.geoserver.security.filter.AbstractFilterProvider; import org.geoserver.security.filter.GeoServerSecurityFilter; import org.geoserver.security.validation.SecurityConfigValidator; /** * Security provider for auth-key authentication * * @author mcr */ public class GeoServerAuthenticationKeyProvider extends AbstractFilterProvider { @Override public void configure(XStreamPersister xp) { super.configure(xp); xp.getXStream().alias("authKeyAuthentication", AuthenticationKeyFilterConfig.class); // xp.getXStream().alias("authKeyRESTUserGroupService", GeoServerRestUserGroupServiceConfig.class); xp.getXStream().alias("authKeyRESTRoleService", GeoServerRestRoleServiceConfig.class); } @Override public Class<? extends GeoServerSecurityFilter> getFilterClass() { return GeoServerAuthenticationKeyFilter.class; } @Override public GeoServerSecurityFilter createFilter(SecurityNamedServiceConfig config) { return new GeoServerAuthenticationKeyFilter(); } @Override public SecurityConfigValidator createConfigurationValidator( GeoServerSecurityManager securityManager) { return new AuthenticationKeyFilterConfigValidator(securityManager); } @Override public GeoServerRoleService createRoleService(SecurityNamedServiceConfig config) throws IOException { return new GeoServerRestRoleService(config); } @Override public GeoServerUserGroupService createUserGroupService(SecurityNamedServiceConfig config) throws IOException { return super.createUserGroupService(config); } @Override public Class<? extends GeoServerRoleService> getRoleServiceClass() { return GeoServerRestRoleService.class; } @Override public Class<? extends GeoServerUserGroupService> getUserGroupServiceClass() { return super.getUserGroupServiceClass(); } @Override public boolean roleServiceNeedsLockProtection() { return false; } @Override public boolean userGroupServiceNeedsLockProtection() { return super.userGroupServiceNeedsLockProtection(); } }