You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by lh...@apache.org on 2009/01/09 04:12:46 UTC
svn commit: r732915 - in /incubator/jsecurity/trunk:
core/test/org/jsecurity/authc/credential/ core/test/org/jsecurity/authc/pam/
core/test/org/jsecurity/authz/permission/
core/test/org/jsecurity/realm/activedirectory/
web/test/org/jsecurity/web/attr/ ...
Author: lhazlewood
Date: Thu Jan 8 19:12:45 2009
New Revision: 732915
URL: http://svn.apache.org/viewvc?rev=732915&view=rev
Log:
replaced missing Test cases that were not copied during the src dir restructuring. All tests are now back in place.
Added:
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/
incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/AllPermissionTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java
incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/
incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java
incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/
incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java
incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/
incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/AllowAllCredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 4:35:27 PM
+ */
+public class AllowAllCredentialsMatcherTest {
+
+ @Test
+ public void testBasic() {
+ assertTrue(new AllowAllCredentialsMatcher().doCredentialsMatch(null, null));
+ }
+
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/HashedCredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import junit.framework.TestCase;
+import org.jsecurity.authc.AuthenticationInfo;
+import org.jsecurity.authc.AuthenticationToken;
+import org.jsecurity.authc.SimpleAuthenticationInfo;
+import org.jsecurity.authc.UsernamePasswordToken;
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.util.ClassUtils;
+import org.junit.Test;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 4:47:09 PM
+ */
+public abstract class HashedCredentialsMatcherTest extends TestCase {
+
+ public abstract Class<? extends HashedCredentialsMatcher> getMatcherClass();
+
+ public abstract AbstractHash hash(Object credentials);
+
+ @Test
+ public void testBasic() {
+ CredentialsMatcher matcher = (CredentialsMatcher) ClassUtils.newInstance(getMatcherClass());
+ byte[] hashed = hash("password").getBytes();
+ AuthenticationInfo account = new SimpleAuthenticationInfo("username", hashed, "realmName");
+ AuthenticationToken token = new UsernamePasswordToken("username", "password");
+ assertTrue(matcher.doCredentialsMatch(token, account));
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md2CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Md2Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 4:38:16 PM
+ */
+public class Md2CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Md2CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Md2Hash(credentials);
+ }
+}
+
+
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Md5CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Md5Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 4:59:36 PM
+ */
+public class Md5CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Md5CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Md5Hash(credentials);
+ }
+}
\ No newline at end of file
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha1CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Sha1Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 5:00:30 PM
+ */
+public class Sha1CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Sha1CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Sha1Hash(credentials);
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha256CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Sha256Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 5:01:00 PM
+ */
+public class Sha256CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Sha256CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Sha256Hash(credentials);
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha384CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Sha384Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 5:02:27 PM
+ */
+public class Sha384CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Sha384CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Sha384Hash(credentials);
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/credential/Sha512CredentialsMatcherTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.credential;
+
+import org.jsecurity.crypto.hash.AbstractHash;
+import org.jsecurity.crypto.hash.Sha512Hash;
+
+/**
+ * @author Les Hazlewood
+ * @since Jun 10, 2008 5:02:58 PM
+ */
+public class Sha512CredentialsMatcherTest extends HashedCredentialsMatcherTest {
+
+ public Class<? extends HashedCredentialsMatcher> getMatcherClass() {
+ return Sha512CredentialsMatcher.class;
+ }
+
+ public AbstractHash hash(Object credentials) {
+ return new Sha512Hash(credentials);
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authc.pam;
+
+import org.jsecurity.authc.AuthenticationException;
+import org.jsecurity.authc.AuthenticationInfo;
+import org.jsecurity.authc.AuthenticationToken;
+import org.jsecurity.authz.AuthorizationInfo;
+import org.jsecurity.realm.AuthorizingRealm;
+import org.jsecurity.realm.Realm;
+import org.jsecurity.realm.SimpleAccountRealm;
+import org.jsecurity.subject.PrincipalCollection;
+import static org.junit.Assert.assertNotNull;
+import org.junit.Before;
+import org.junit.Test;
+
+public class AllSuccessfulModularAuthenticationStrategyTest {
+
+ private AllSuccessfulModularAuthenticationStrategy strategy;
+
+ @Before
+ public void setUp() {
+ strategy = new AllSuccessfulModularAuthenticationStrategy();
+ }
+
+ @Test
+ public void beforeAllAttempts() {
+ AuthenticationInfo info = strategy.beforeAllAttempts(null, null);
+ assertNotNull(info);
+ }
+
+ @Test
+ public void beforeAttemptSupportingToken() {
+ new SimpleAccountRealm();
+ }
+
+ @Test(expected = UnsupportedTokenException.class)
+ public void beforeAttemptRealmDoesntSupportToken() {
+ Realm notSupportingRealm = new AuthorizingRealm() {
+
+ public boolean supports(AuthenticationToken token) {
+ return false;
+ }
+
+ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
+ return null;
+ }
+
+ protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) {
+ return null;
+ }
+
+ };
+
+ strategy.beforeAttempt(notSupportingRealm, null, null);
+ }
+
+
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/AllPermissionTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/AllPermissionTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/AllPermissionTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/AllPermissionTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authz.permission;
+
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+/**
+ * @author Les Hazlewood
+ */
+public class AllPermissionTest {
+
+ @Test
+ public void testNullArgument() {
+ assertTrue(new AllPermission().implies(null));
+ }
+
+ @Test
+ public void testNonNullArgument() {
+ assertTrue(new AllPermission().implies(new AllPermission()));
+ }
+}
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/authz/permission/WildcardPermissionTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.authz.permission;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+/**
+ * @author Jeremy Haile
+ * @since 0.9
+ */
+public class WildcardPermissionTest {
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testNull() {
+ new WildcardPermission(null);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testEmpty() {
+ new WildcardPermission("");
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testBlank() {
+ new WildcardPermission(" ");
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testOnlyDelimiters() {
+ new WildcardPermission("::,,::,:");
+ }
+
+ @Test
+ public void testNamed() {
+ WildcardPermission p1, p2;
+
+ // Case insensitive, same
+ p1 = new WildcardPermission("something");
+ p2 = new WildcardPermission("something");
+ assertTrue(p1.implies(p2));
+ assertTrue(p2.implies(p1));
+
+ // Case insensitive, different case
+ p1 = new WildcardPermission("something");
+ p2 = new WildcardPermission("SOMETHING");
+ assertTrue(p1.implies(p2));
+ assertTrue(p2.implies(p1));
+
+ // Case insensitive, different word
+ p1 = new WildcardPermission("something");
+ p2 = new WildcardPermission("else");
+ assertFalse(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+
+ // Case sensitive same
+ p1 = new WildcardPermission("BLAHBLAH", false);
+ p2 = new WildcardPermission("BLAHBLAH", false);
+ assertTrue(p1.implies(p2));
+ assertTrue(p2.implies(p1));
+
+ // Case sensitive, different case
+ p1 = new WildcardPermission("BLAHBLAH", false);
+ p2 = new WildcardPermission("bLAHBLAH", false);
+ assertTrue(p1.implies(p2));
+ assertTrue(p2.implies(p1));
+
+ // Case sensitive, different word
+ p1 = new WildcardPermission("BLAHBLAH", false);
+ p2 = new WildcardPermission("whatwhat", false);
+ assertFalse(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+
+ }
+
+ @Test
+ public void testLists() {
+ WildcardPermission p1, p2, p3;
+
+ p1 = new WildcardPermission("one,two");
+ p2 = new WildcardPermission("one");
+ assertTrue(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+
+ p1 = new WildcardPermission("one,two,three");
+ p2 = new WildcardPermission("one,three");
+ assertTrue(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+
+ p1 = new WildcardPermission("one,two:one,two,three");
+ p2 = new WildcardPermission("one:three");
+ p3 = new WildcardPermission("one:two,three");
+ assertTrue(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+ assertTrue(p1.implies(p3));
+ assertFalse(p2.implies(p3));
+ assertTrue(p3.implies(p2));
+
+ p1 = new WildcardPermission("one,two,three:one,two,three:one,two");
+ p2 = new WildcardPermission("one:three:two");
+ assertTrue(p1.implies(p2));
+ assertFalse(p2.implies(p1));
+
+ p1 = new WildcardPermission("one");
+ p2 = new WildcardPermission("one:two,three,four");
+ p3 = new WildcardPermission("one:two,three,four:five:six:seven");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p3));
+ assertFalse(p2.implies(p1));
+ assertFalse(p3.implies(p1));
+ assertTrue(p2.implies(p3));
+
+ }
+
+ @Test
+ public void testWildcards() {
+ WildcardPermission p1, p2, p3, p4, p5, p6, p7, p8;
+
+ p1 = new WildcardPermission("*");
+ p2 = new WildcardPermission("one");
+ p3 = new WildcardPermission("one:two");
+ p4 = new WildcardPermission("one,two:three,four");
+ p5 = new WildcardPermission("one,two:three,four,five:six:seven,eight");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p3));
+ assertTrue(p1.implies(p4));
+ assertTrue(p1.implies(p5));
+
+ p1 = new WildcardPermission("newsletter:*");
+ p2 = new WildcardPermission("newsletter:read");
+ p3 = new WildcardPermission("newsletter:read,write");
+ p4 = new WildcardPermission("newsletter:*");
+ p5 = new WildcardPermission("newsletter:*:*");
+ p6 = new WildcardPermission("newsletter:*:read");
+ p7 = new WildcardPermission("newsletter:write:*");
+ p8 = new WildcardPermission("newsletter:read,write:*");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p3));
+ assertTrue(p1.implies(p4));
+ assertTrue(p1.implies(p5));
+ assertTrue(p1.implies(p6));
+ assertTrue(p1.implies(p7));
+ assertTrue(p1.implies(p8));
+
+
+ p1 = new WildcardPermission("newsletter:*:*");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p3));
+ assertTrue(p1.implies(p4));
+ assertTrue(p1.implies(p5));
+ assertTrue(p1.implies(p6));
+ assertTrue(p1.implies(p7));
+ assertTrue(p1.implies(p8));
+
+ p1 = new WildcardPermission("newsletter:*:*:*");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p3));
+ assertTrue(p1.implies(p4));
+ assertTrue(p1.implies(p5));
+ assertTrue(p1.implies(p6));
+ assertTrue(p1.implies(p7));
+ assertTrue(p1.implies(p8));
+
+ p1 = new WildcardPermission("newsletter:*:read");
+ p2 = new WildcardPermission("newsletter:123:read");
+ p3 = new WildcardPermission("newsletter:123,456:read,write");
+ p4 = new WildcardPermission("newsletter:read");
+ p5 = new WildcardPermission("newsletter:read,write");
+ p6 = new WildcardPermission("newsletter:123:read:write");
+ assertTrue(p1.implies(p2));
+ assertFalse(p1.implies(p3));
+ assertFalse(p1.implies(p4));
+ assertFalse(p1.implies(p5));
+ assertTrue(p1.implies(p6));
+
+ p1 = new WildcardPermission("newsletter:*:read:*");
+ assertTrue(p1.implies(p2));
+ assertTrue(p1.implies(p6));
+
+ }
+
+}
\ No newline at end of file
Added: incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java (added)
+++ incubator/jsecurity/trunk/core/test/org/jsecurity/realm/activedirectory/ActiveDirectoryRealmTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.realm.activedirectory;
+
+import org.jsecurity.authc.*;
+import org.jsecurity.authc.credential.CredentialsMatcher;
+import org.jsecurity.authz.AuthorizationInfo;
+import org.jsecurity.authz.SimpleAuthorizationInfo;
+import org.jsecurity.mgt.DefaultSecurityManager;
+import org.jsecurity.realm.AuthorizingRealm;
+import org.jsecurity.realm.UserIdPrincipal;
+import org.jsecurity.realm.UsernamePrincipal;
+import org.jsecurity.realm.ldap.LdapContextFactory;
+import org.jsecurity.subject.PrincipalCollection;
+import org.jsecurity.subject.SimplePrincipalCollection;
+import org.jsecurity.subject.Subject;
+import org.junit.After;
+import static org.junit.Assert.assertTrue;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.naming.NamingException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Simple test case for ActiveDirectoryRealm.
+ *
+ * todo: While the original incarnation of this test case does not actually test the
+ * heart of ActiveDirectoryRealm (no meaningful implemenation of queryForLdapAccount, etc) it obviously should.
+ * This version was intended to mimic my current usage scenario in an effort to debug upgrade issues which were not related
+ * to LDAP connectivity.
+ *
+ * @author Tim Veil
+ */
+public class ActiveDirectoryRealmTest {
+
+ DefaultSecurityManager securityManager = null;
+ AuthorizingRealm realm;
+
+ private static final String USERNAME = "testuser";
+ private static final String PASSWORD = "password";
+ private static final int USER_ID = 12345;
+ private static final String ROLE = "admin";
+
+ @Before
+ public void setup() {
+ realm = new TestActiveDirectoryRealm();
+ securityManager = new DefaultSecurityManager(realm);
+
+ }
+
+ @After
+ public void tearDown() {
+ if (securityManager != null) {
+ securityManager.destroy();
+ }
+ }
+
+ @Test
+ public void testDefaultConfig() {
+ InetAddress localhost = null;
+ try {
+ localhost = InetAddress.getLocalHost();
+ } catch (UnknownHostException e) {
+ e.printStackTrace();
+ }
+ Subject subject = securityManager.login(new UsernamePasswordToken(USERNAME, PASSWORD, localhost));
+ assertTrue(subject.isAuthenticated());
+ assertTrue(subject.hasRole(ROLE));
+
+
+ UsernamePrincipal usernamePrincipal = subject.getPrincipals().oneByType(UsernamePrincipal.class);
+ assertTrue(usernamePrincipal.getUsername().equals(USERNAME));
+
+ UserIdPrincipal userIdPrincipal = subject.getPrincipals().oneByType(UserIdPrincipal.class);
+ assertTrue(userIdPrincipal.getUserId() == USER_ID);
+
+ Object principals = subject.getPrincipal();
+
+ assertTrue(realm.hasRole(subject.getPrincipals(), ROLE));
+
+ subject.logout();
+ }
+
+ public class TestActiveDirectoryRealm extends ActiveDirectoryRealm {
+
+ /*--------------------------------------------
+ | C O N S T R U C T O R S |
+ ============================================*/
+ CredentialsMatcher credentialsMatcher;
+
+ public TestActiveDirectoryRealm() {
+ super();
+
+
+ credentialsMatcher = new CredentialsMatcher() {
+ public boolean doCredentialsMatch(AuthenticationToken object, AuthenticationInfo object1) {
+ return true;
+ }
+ };
+
+ setCredentialsMatcher(credentialsMatcher);
+ }
+
+
+ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
+ SimpleAccount account = (SimpleAccount) super.doGetAuthenticationInfo(token);
+
+ if (account != null) {
+ SimplePrincipalCollection principals = new SimplePrincipalCollection();
+ principals.add(new UserIdPrincipal(USER_ID), getName());
+ principals.add(new UsernamePrincipal(USERNAME), getName());
+ account.setPrincipals(principals);
+ }
+
+ return account;
+
+ }
+
+ protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+ Set<String> roles = new HashSet<String>();
+ roles.add(ROLE);
+ return new SimpleAuthorizationInfo(roles);
+ }
+
+ // override ldap query because i don't care about testing that piece in this case
+ protected AuthenticationInfo queryForAuthenticationInfo(AuthenticationToken token, LdapContextFactory ldapContextFactory) throws NamingException {
+ return new SimpleAccount(token.getPrincipal(), token.getCredentials(), getName());
+ }
+
+ }
+
+}
\ No newline at end of file
Added: incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java (added)
+++ incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.web.attr;
+
+import junit.framework.TestCase;
+import static org.easymock.EasyMock.*;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author Les Hazlewood
+ * @since 0.9
+ */
+public class CookieAttributeTest extends TestCase {
+
+ private CookieAttribute<String> cookieAttribute;
+ private HttpServletRequest mockRequest;
+ private HttpServletResponse mockResponse;
+
+ @Before
+ public void setUp() throws Exception {
+ this.mockRequest = createMock(HttpServletRequest.class);
+ this.mockResponse = createMock(HttpServletResponse.class);
+ this.cookieAttribute = new CookieAttribute<String>("test");
+ }
+
+ @Test
+ //Verifies fix for JSEC-94
+ public void testRemoveValue() throws Exception {
+
+ Cookie cookie = new Cookie("test", "blah");
+ cookie.setMaxAge(2351234); //doesn't matter what the time is
+ Cookie[] cookies = new Cookie[]{cookie};
+
+ expect(mockRequest.getCookies()).andReturn(cookies);
+ //no path set on the cookie, so we expect to retrieve it from the context path
+ expect(mockRequest.getContextPath()).andReturn("/somepath");
+ mockResponse.addCookie(cookie);
+ replay(mockRequest);
+ replay(mockResponse);
+
+ cookieAttribute.removeValue(mockRequest, mockResponse);
+
+ verify(mockRequest);
+ verify(mockResponse);
+
+ assertTrue(cookie.getMaxAge() == 0);
+ assertTrue(cookie.getPath().equals("/somepath"));
+ }
+}
Added: incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java?rev=732915&view=auto
==============================================================================
--- incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java (added)
+++ incubator/jsecurity/trunk/web/test/org/jsecurity/web/servlet/JSecurityFilterTest.java Thu Jan 8 19:12:45 2009
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jsecurity.web.servlet;
+
+import static org.easymock.EasyMock.*;
+import org.junit.Test;
+
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletContext;
+
+/**
+ * @author Les Hazlewood
+ * @since 0.9
+ */
+public class JSecurityFilterTest {
+
+ private JSecurityFilter filter;
+ private FilterConfig mockFilterConfig;
+ private ServletContext mockServletContext;
+
+ protected void setUp(String config) {
+ mockFilterConfig = createMock(FilterConfig.class);
+ mockServletContext = createMock(ServletContext.class);
+
+ expect(mockFilterConfig.getServletContext()).andReturn(mockServletContext);
+ expect(mockFilterConfig.getInitParameter(JSecurityFilter.CONFIG_CLASS_NAME_INIT_PARAM_NAME)).andReturn(null).once();
+ expect(mockFilterConfig.getInitParameter(JSecurityFilter.CONFIG_INIT_PARAM_NAME)).andReturn(config).once();
+ expect(mockFilterConfig.getInitParameter(JSecurityFilter.CONFIG_URL_INIT_PARAM_NAME)).andReturn(null).once();
+ }
+
+ public void tearDown() throws Exception {
+ reset(mockServletContext);
+ reset(mockFilterConfig);
+
+ replay(mockServletContext);
+
+ //this.filter.destroy();
+
+ verify(mockServletContext);
+ verify(mockFilterConfig);
+ }
+
+ protected void replayAndVerify() throws Exception {
+ replay(mockServletContext);
+ replay(mockFilterConfig);
+
+ this.filter = new JSecurityFilter();
+ this.filter.init(mockFilterConfig);
+
+
+ verify(mockFilterConfig);
+ verify(mockServletContext);
+ }
+
+
+ @Test
+ public void testDefaultConfig() throws Exception {
+ setUp(null);
+ replayAndVerify();
+ }
+
+ @Test
+ public void testSimpleConfig() throws Exception {
+ setUp("[filters]\n" +
+ "authc.successUrl = /index.jsp");
+ replayAndVerify();
+ }
+}