X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FTestAuthorizationRule.java;fp=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FTestAuthorizationRule.java;h=fe02560d824272c71730f66e31230b4025ba0835;hb=162af365e45e54e5e8d656be276914df2005eaec;hp=0000000000000000000000000000000000000000;hpb=cf25a3646c663c5aadbd2de8c23840550b18125b;p=utils diff --git a/security/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java b/security/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java new file mode 100644 index 00000000..fe02560d --- /dev/null +++ b/security/src/test/java/org/wamblee/security/authorization/TestAuthorizationRule.java @@ -0,0 +1,73 @@ +/* + * Copyright 2005 the original author or authors. + * + * 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.wamblee.security.authorization; + +import static org.wamblee.security.authorization.AuthorizationResult.DENIED; +import static org.wamblee.security.authorization.AuthorizationResult.GRANTED; + +import org.wamblee.usermgt.User; + +/** + * Test authorization rule that also counts the number of times the rule matches. + */ +public class TestAuthorizationRule extends UrlAuthorizationRule { + + /** + * Counts the number of matches. + */ + private int _matches = 0; + + public TestAuthorizationRule( AuthorizationResult aResult, String aGroup, + String aPath, Class aOperation) { + super(aResult, new GroupUserCondition(aGroup), + new StartsWithPathCondition(aPath), TestResource.class, new IsaOperationCondition(aOperation)); + } + + protected TestAuthorizationRule() { + super(); + } + + /* (non-Javadoc) + * @see org.wamblee.security.authorization.UrlAuthorizationRule#getPath(java.lang.Object) + */ + @Override + protected String getResourcePath(Object aResource) { + return ((TestResource)aResource).getPath(); + } + + /* (non-Javadoc) + * @see org.wamblee.security.authorization.UrlAuthorizationRule#isAllowed(java.lang.Object, org.wamblee.security.authorization.Operation, org.wamblee.usermgt.UserAccessor) + */ + @Override + public AuthorizationResult isAllowed(Object aResource, Operation anOperation, User aUser) { + + AuthorizationResult result = super.isAllowed(aResource, anOperation, aUser); + if ( result.equals(GRANTED) || result.equals(DENIED)) { + _matches++; + } + return result; + } + + public int getMatchCount() { + return _matches; + } + + public void reset() { + _matches = 0; + } + +}