/* jBilling - The Enterprise Open Source Billing System Copyright (C) 2003-2011 Enterprise jBilling Software Ltd. and Emiliano Conde This file is part of jbilling. jbilling is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. jbilling is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with jbilling. If not, see <http://www.gnu.org/licenses/>. */ package com.sapienter.jbilling.client.authentication; import org.codehaus.groovy.grails.plugins.springsecurity.WebExpressionVoter; import org.springframework.security.access.ConfigAttribute; import org.springframework.security.core.Authentication; import java.util.Collection; /** * An extension of the base grails security core {@link WebExpressionVoter} that abstains when an * expression cannot be evaluated. * * This is only necessary because all secured path attributes are wrapped as a <code>WebExpressionConfigAttribute</code> * that will be parsed by the voter, even if the attribute is simply a plain-text permission string and * not an expression. * * @author Brian Cowdery * @since 05-10-2010 */ public class SafeWebExpressionVoter extends WebExpressionVoter { @Override public int vote(Authentication authentication, Object object, Collection<ConfigAttribute> attributes) { try { return super.vote(authentication, object, attributes); } catch (IllegalArgumentException e) { return ACCESS_ABSTAIN; } } }