Author: ajaquith
Date: Mon Oct 13 21:34:54 2008
New Revision: 704309
URL: http://svn.apache.org/viewvc?rev=704309&view=rev
Log:
[JSPWIKI-345] Added unit tests for testing single user policies. Confirmed bug
and workaround but did not fix root cause (freshcookies-security bug).
Added:
incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy (with
props)
Modified:
incubator/jspwiki/trunk/ChangeLog
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/AuthorizationManager.java
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/AuthorizationManagerTest.java
Modified: incubator/jspwiki/trunk/ChangeLog
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=704309&r1=704308&r2=704309&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Mon Oct 13 21:34:54 2008
@@ -1,3 +1,12 @@
+2008-10-01 Andrew Jaquith <ajaquith AT apache DOT org>
+
+ * 2.8.0-beta-18
+
+ * [JSPWiki-342] Resolved issue by removing outdated doc files.
+
+ * [JSPWIKI-345] Added unit tests for testing single user policies.
Confirmed bug
+ and workaround but did not fix root cause (freshcookies-security bug).
+
2008-10-06 Dirk Frederickx <[EMAIL PROTECTED]>
* 2.8.0-beta-18
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java?rev=704309&r1=704308&r2=704309&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java Mon Oct 13
21:34:54 2008
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "18";
+ public static final String BUILD = "19";
/**
* This is the generic version string you should use
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/AuthorizationManager.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/AuthorizationManager.java?rev=704309&r1=704308&r2=704309&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/AuthorizationManager.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/AuthorizationManager.java
Mon Oct 13 21:34:54 2008
@@ -92,6 +92,9 @@
*/
public static final String DEFAULT_AUTHORIZER =
"com.ecyrd.jspwiki.auth.authorize.WebContainerAuthorizer";
+ /** Property that supplies the security policy file name, in WEB-INF. */
+ protected static final String POLICY =
"jspwiki.policy.file";
+
/** Name of the default security policy file, in WEB-INF. */
protected static final String DEFAULT_POLICY =
"jspwiki.policy";
@@ -403,7 +406,8 @@
// Initialize local security policy
try
{
- URL policyURL = AuthenticationManager.findConfigFile( engine,
DEFAULT_POLICY );
+ String policyFileName = properties.getProperty( POLICY,
DEFAULT_POLICY );
+ URL policyURL = AuthenticationManager.findConfigFile( engine,
policyFileName );
if (policyURL != null)
{
Modified:
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/AuthorizationManagerTest.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/AuthorizationManagerTest.java?rev=704309&r1=704308&r2=704309&view=diff
==============================================================================
---
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/AuthorizationManagerTest.java
(original)
+++
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/AuthorizationManagerTest.java
Mon Oct 13 21:34:54 2008
@@ -69,6 +69,11 @@
{
Properties props = new Properties();
props.load( TestEngine.findTestProperties() );
+
+ // Make sure we are using the default security policy file
jspwiki.policy
+ props.put( AuthorizationManager.POLICY,
AuthorizationManager.DEFAULT_POLICY );
+
+ // Initialize the test engine
m_engine = new TestEngine( props );
m_auth = m_engine.getAuthorizationManager();
m_groupMgr = m_engine.getGroupManager();
@@ -659,5 +664,85 @@
assertTrue( "Alice cannot read", m_auth.checkPermission( session,
new
PagePermission("TestDefaultPage","view") ) );
}
+
+ public void testUserPolicy() throws Exception
+ {
+ Properties props = new Properties();
+ props.load( TestEngine.findTestProperties() );
+
+ // Make sure we are using the default security policy file
jspwiki.policy
+ props.put( AuthorizationManager.POLICY,
"jspwiki-testUserPolicy.policy" );
+
+ // Initialize the test engine
+ m_engine = new TestEngine( props );
+ m_auth = m_engine.getAuthorizationManager();
+ m_groupMgr = m_engine.getGroupManager();
+ m_session = WikiSessionTest.adminSession( m_engine );
+
+ WikiSession s = WikiSessionTest.anonymousSession( m_engine );
+ assertFalse( "Anonymous view", m_auth.checkStaticPermission( s,
PagePermission.VIEW ) );
+ assertFalse( "Anonymous edit", m_auth.checkStaticPermission( s,
PagePermission.EDIT ) );
+ assertFalse( "Anonymous comment", m_auth.checkStaticPermission( s,
PagePermission.COMMENT ) );
+ assertFalse( "Anonymous modify", m_auth.checkStaticPermission( s,
PagePermission.MODIFY ) );
+ assertFalse( "Anonymous upload", m_auth.checkStaticPermission( s,
PagePermission.UPLOAD ) );
+ assertFalse( "Anonymous rename", m_auth.checkStaticPermission( s,
PagePermission.RENAME ) );
+ assertFalse( "Anonymous delete", m_auth.checkStaticPermission( s,
PagePermission.DELETE ) );
+ assertFalse( "Anonymous prefs", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PREFERENCES ) );
+ assertFalse( "Anonymous profile", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PROFILE ) );
+ assertFalse( "Anonymous pages", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_PAGES ) );
+ assertFalse( "Anonymous groups", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_GROUPS ) );
+
+ s = WikiSessionTest.assertedSession( m_engine, "Jack Sparrow" );
+ assertFalse( "Asserted view", m_auth.checkStaticPermission( s,
PagePermission.VIEW ) );
+ assertFalse( "Asserted edit", m_auth.checkStaticPermission( s,
PagePermission.EDIT ) );
+ assertFalse( "Asserted comment", m_auth.checkStaticPermission( s,
PagePermission.COMMENT ) );
+ assertFalse( "Asserted modify", m_auth.checkStaticPermission( s,
PagePermission.MODIFY ) );
+ assertFalse( "Asserted upload", m_auth.checkStaticPermission( s,
PagePermission.UPLOAD ) );
+ assertFalse( "Asserted rename", m_auth.checkStaticPermission( s,
PagePermission.RENAME ) );
+ assertFalse( "Asserted delete", m_auth.checkStaticPermission( s,
PagePermission.DELETE ) );
+ assertFalse( "Asserted prefs", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PREFERENCES ) );
+ assertFalse( "Asserted profile", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PROFILE ) );
+ assertFalse( "Asserted pages", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_PAGES ) );
+ assertFalse( "Asserted groups", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_GROUPS ) );
+
+ s = WikiSessionTest.authenticatedSession( m_engine, Users.BOB,
Users.BOB_PASS );
+ assertTrue( "Bob view", m_auth.checkStaticPermission( s,
PagePermission.VIEW ) );
+ assertFalse( "Bob edit", m_auth.checkStaticPermission( s,
PagePermission.EDIT ) );
+ assertFalse( "Bob comment", m_auth.checkStaticPermission( s,
PagePermission.COMMENT ) );
+ assertFalse( "Bob modify", m_auth.checkStaticPermission( s,
PagePermission.MODIFY ) );
+ assertFalse( "Bob upload", m_auth.checkStaticPermission( s,
PagePermission.UPLOAD ) );
+ assertFalse( "Bob rename", m_auth.checkStaticPermission( s,
PagePermission.RENAME ) );
+ assertFalse( "Bob delete", m_auth.checkStaticPermission( s,
PagePermission.DELETE ) );
+ assertFalse( "Bob prefs", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PREFERENCES ) );
+ assertFalse( "Bob profile", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PROFILE ) );
+ assertFalse( "Bob pages", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_PAGES ) );
+ assertFalse( "Bob groups", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_GROUPS ) );
+
+ s = WikiSessionTest.authenticatedSession( m_engine, Users.JANNE,
Users.JANNE_PASS );
+ assertTrue( "Janne view", m_auth.checkStaticPermission( s,
PagePermission.VIEW ) );
+ assertTrue( "Janne edit", m_auth.checkStaticPermission( s,
PagePermission.EDIT ) );
+ assertTrue( "Janne comment", m_auth.checkStaticPermission( s,
PagePermission.COMMENT ) );
+ assertTrue( "Janne modify", m_auth.checkStaticPermission( s,
PagePermission.MODIFY ) );
+ assertTrue( "Janne upload", m_auth.checkStaticPermission( s,
PagePermission.UPLOAD ) );
+ assertFalse( "Janne rename", m_auth.checkStaticPermission( s,
PagePermission.RENAME ) );
+ assertTrue( "Janne delete", m_auth.checkStaticPermission( s,
PagePermission.DELETE ) );
+ assertFalse( "Janne prefs", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PREFERENCES ) );
+ assertFalse( "Janne profile", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PROFILE ) );
+ assertFalse( "Janne pages", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_PAGES ) );
+ assertFalse( "Janne groups", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_GROUPS ) );
+
+ s = WikiSessionTest.adminSession( m_engine );
+ assertTrue( "Admin view", m_auth.checkStaticPermission( s,
PagePermission.VIEW ) );
+ assertFalse( "Admin edit", m_auth.checkStaticPermission( s,
PagePermission.EDIT ) );
+ assertFalse( "Admin comment", m_auth.checkStaticPermission( s,
PagePermission.COMMENT ) );
+ assertFalse( "Admin modify", m_auth.checkStaticPermission( s,
PagePermission.MODIFY ) );
+ assertFalse( "Admin upload", m_auth.checkStaticPermission( s,
PagePermission.UPLOAD ) );
+ assertFalse( "Admin rename", m_auth.checkStaticPermission( s,
PagePermission.RENAME ) );
+ assertFalse( "Admin delete", m_auth.checkStaticPermission( s,
PagePermission.DELETE ) );
+ assertFalse( "Admin prefs", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PREFERENCES ) );
+ assertFalse( "Admin profile", m_auth.checkStaticPermission( s,
WikiPermission.EDIT_PROFILE ) );
+ assertFalse( "Admin pages", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_PAGES ) );
+ assertFalse( "Admin groups", m_auth.checkStaticPermission( s,
WikiPermission.CREATE_GROUPS ) );
+ }
}
Added: incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy?rev=704309&view=auto
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy (added)
+++ incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy Mon Oct 13
21:34:54 2008
@@ -0,0 +1,11 @@
+grant principal com.ecyrd.jspwiki.auth.authorize.Role "All" {
+ permission com.ecyrd.jspwiki.auth.permissions.WikiPermission "*", "login";
+};
+
+grant principal com.ecyrd.jspwiki.auth.authorize.Role "Authenticated" {
+ permission com.ecyrd.jspwiki.auth.permissions.PagePermission "*:*", "view";
+};
+
+grant principal com.ecyrd.jspwiki.auth.WikiPrincipal "Janne Jalkanen" {
+ permission com.ecyrd.jspwiki.auth.permissions.PagePermission "*:*",
"edit,delete";
+};
Propchange: incubator/jspwiki/trunk/tests/etc/jspwiki-testUserPolicy.policy
------------------------------------------------------------------------------
svn:executable = *