Author: andreas
Date: Wed Nov 19 17:10:15 2008
New Revision: 719147
URL: http://svn.apache.org/viewvc?rev=719147&view=rev
Log:
Next steps in access control redesign.
Added:
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItem.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUser.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUserReference.java
Modified:
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/AbstractUserReference.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Authenticator.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Item.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUser.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUserReference.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/User.java
lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/UserManager.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/config/module.xml
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsLexer.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsParser.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions__.g
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileGroup.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileIPRange.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItemManager.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUser.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUserManager.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AbstractIPRange.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AnonymousAuthenticator.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/PolicyBuilder.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/UserAuthenticator.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/file/FileUserTest.java
lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/impl/UserManagerTest.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AbstractChangePassword.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AddUser.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePassword.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePasswordAdmin.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/DeleteUser.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/GroupMembers.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/UserGroups.java
lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/UserProfile.java
lenya/sandbox/access_control_redesign/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java
lenya/sandbox/access_control_redesign/src/modules/notification/java/src/org/apache/lenya/inbox/xml/XmlSourceInbox.java
lenya/sandbox/access_control_redesign/src/webapp/lenya/config/sitemap/pipelines.xmap
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/AbstractUserReference.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/AbstractUserReference.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/AbstractUserReference.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/AbstractUserReference.java Wed Nov 19 17:10:15 2008
@@ -31,18 +31,14 @@
private static final long serialVersionUID = 1L;
private String userId;
- private String managerId;
/**
* @param userId The ID of the user.
- * @param accrMgrId The ID of the accreditable manager.
* @see Item#getId()
*/
- public AbstractUserReference(String userId, String accrMgrId) {
+ public AbstractUserReference(String userId) {
Assert.notNull("user ID", userId);
- Assert.notNull("accreditable manager ID", accrMgrId);
this.userId = userId;
- this.managerId = accrMgrId;
}
/**
@@ -96,9 +92,4 @@
return matchingGroups;
}
- public boolean belongsToAccreditableManager(String accrMgrId) {
- Assert.notNull("accreditable manager ID", accrMgrId);
- return accrMgrId.equals(this.managerId);
- }
-
}
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Authenticator.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Authenticator.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Authenticator.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Authenticator.java Wed Nov 19 17:10:15 2008
@@ -20,6 +20,7 @@
import org.apache.avalon.framework.component.Component;
import org.apache.cocoon.environment.Request;
+import org.apache.lenya.ac.attr.AttributeSet;
/**
* An authenticator.
@@ -41,4 +42,25 @@
*/
boolean authenticate(AccreditableManager accreditableManager, Request request)
throws AccessControlException;
+
+ /**
+ * The login URI for a certain request.
+ * @param request The request.
+ * @return A string.
+ */
+ String getLoginUri(Request request);
+
+ /**
+ * The target URI, i.e. the URI to redirect to after a successful
+ * authentication.
+ * @param request The request containing the authentication data.
+ * @return A string.
+ */
+ String getTargetUri(Request request);
+
+ /**
+ * @return The set of attributes to be expected when a user has been
+ * authenticated by this authenticator.
+ */
+ AttributeSet getAttributeSet();
}
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Item.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Item.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Item.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/Item.java Wed Nov 19 17:10:15 2008
@@ -20,15 +20,13 @@
package org.apache.lenya.ac;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.LogEnabled;
/**
* An item can be initialized from a configuration.
*/
-public interface Item extends LogEnabled {
+public interface Item {
/**
* Returns the ID.
@@ -60,16 +58,4 @@
*/
void setDescription(String description);
- /**
- * Configures this item.
- * @param configuration The configuration.
- * @throws ConfigurationException when something went wrong.
- */
- void configure(Configuration configuration) throws ConfigurationException;
-
- /**
- * @return The item manager this item belongs to.
- */
- ItemManager getItemManager();
-
}
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUser.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUser.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUser.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUser.java Wed Nov 19 17:10:15 2008
@@ -20,7 +20,7 @@
/**
* A user which is managed by the Lenya CMS itself, i.e. it belongs to a {@link UserManager}.
*/
-public interface ManagedUser extends User, Accreditable {
+public interface ManagedUser extends User, Accreditable, Groupable {
/**
* Delete this user.
@@ -43,6 +43,12 @@
void setPassword(String plainTextPassword);
/**
+ * Checks support for changing password
+ * @return true if password change is supported
+ */
+ public abstract boolean canChangePassword();
+
+ /**
* Saves this user.
* @throws AccessControlException if the user could not be saved.
*/
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUserReference.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUserReference.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUserReference.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/ManagedUserReference.java Wed Nov 19 17:10:15 2008
@@ -17,17 +17,23 @@
*/
package org.apache.lenya.ac;
+import org.apache.lenya.util.Assert;
+
/**
* A reference to a managed user.
*/
public class ManagedUserReference extends AbstractUserReference {
+
+ private String managerId;
/**
* @param userId The user ID.
* @param managerId The ID of the accreditable manager the user belongs to.
*/
public ManagedUserReference(String userId, String managerId) {
- super(userId, managerId);
+ super(userId);
+ Assert.notNull("manager ID", managerId);
+ this.managerId = managerId;
}
private static final long serialVersionUID = 1L;
@@ -44,4 +50,9 @@
}
}
+ public boolean belongsToAccreditableManager(String accrMgrId) {
+ Assert.notNull("accreditable manager ID", accrMgrId);
+ return accrMgrId.equals(this.managerId);
+ }
+
}
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/User.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/User.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/User.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/User.java Wed Nov 19 17:10:15 2008
@@ -24,7 +24,7 @@
* A user.
* @version $Id$
*/
-public interface User extends Accreditable, Item, Groupable, AttributeOwner {
+public interface User extends Item, AttributeOwner {
/**
* Get the email address
@@ -41,18 +41,6 @@
void setEmail(String email);
/**
- * Sets the password.
- * @param plainTextPassword The plain text password.
- */
- void setPassword(String plainTextPassword);
-
- /**
- * Checks support for changing password
- * @return true if password change is supported
- */
- public abstract boolean canChangePassword();
-
- /**
* Returns the user's preferred locale for the Lenya
* CMS menus and CMS screens.
*
@@ -96,32 +84,4 @@
*/
void setDefaultDocumentLocale(String documentLocale);
- /**
- * Save the user
- *
- * @throws AccessControlException if the save failed
- */
- void save() throws AccessControlException;
-
- /**
- * Delete a user
- *
- * @throws AccessControlException if the delete failed
- */
- void delete() throws AccessControlException;
-
- /**
- * Authenticate a user. This is done by encrypting
- * the given password and comparing this to the
- * encryptedPassword.
- *
- * @param password to authenticate with
- * @return true if the given password matches the password for this user
- */
- boolean authenticate(String password);
-
- /**
- * @return The accreditable manager this accreditable belongs to.
- */
- AccreditableManager getAccreditableManager();
}
Modified: lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/UserManager.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/UserManager.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/UserManager.java (original)
+++ lenya/sandbox/access_control_redesign/src/java/org/apache/lenya/ac/UserManager.java Wed Nov 19 17:10:15 2008
@@ -61,7 +61,7 @@
* @return the requested user or null if there is
* no user with the given user id
*/
- User getUser(String userId);
+ ManagedUser getUser(String userId);
/**
* @param userId A user ID.
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/config/module.xml
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/config/module.xml?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/config/module.xml (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/config/module.xml Wed Nov 19 17:10:15 2008
@@ -22,6 +22,8 @@
<id>org.apache.lenya.modules.ac</id>
<export package="org.apache.lenya.ac.file"/>
<export package="org.apache.lenya.ac.impl"/>
+ <export package="org.apache.lenya.ac.attr"/>
+ <export package="org.apache.lenya.ac.attr.impl"/>
<depends module="org.apache.lenya.modules.cache"/>
<depends module="org.apache.lenya.modules.linking"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsLexer.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsLexer.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsLexer.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsLexer.java Wed Nov 19 17:10:15 2008
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g 2008-11-19 22:26:32
+// $ANTLR 3.0.1 /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g 2008-11-19 23:56:23
package org.apache.lenya.ac.attr.antlr;
import org.apache.lenya.ac.attr.ErrorHandler;
@@ -37,17 +37,17 @@
public ExpressionsLexer(CharStream input) {
super(input);
}
- public String getGrammarFileName() { return "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g"; }
+ public String getGrammarFileName() { return "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g"; }
// $ANTLR start LITERAL
public final void mLITERAL() throws RecognitionException {
try {
int _type = LITERAL;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:8: ( '\"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )* '\"' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:10: '\"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )* '\"'
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:8: ( '\"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )* '\"' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:10: '\"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )* '\"'
{
match('\"');
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:14: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:106:14: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
loop1:
do {
int alt1=2;
@@ -60,7 +60,7 @@
switch (alt1) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
{
if ( input.LA(1)==' '||input.LA(1)=='.'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
input.consume();
@@ -96,8 +96,8 @@
public final void mID() throws RecognitionException {
try {
int _type = ID;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
{
if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
input.consume();
@@ -109,7 +109,7 @@
recover(mse); throw mse;
}
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:25: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:107:25: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
loop2:
do {
int alt2=2;
@@ -122,7 +122,7 @@
switch (alt2) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
{
if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
input.consume();
@@ -157,8 +157,8 @@
public final void mEQUALS() throws RecognitionException {
try {
int _type = EQUALS;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:108:7: ( '==' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:108:9: '=='
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:108:7: ( '==' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:108:9: '=='
{
match("==");
@@ -176,8 +176,8 @@
public final void mQUOT() throws RecognitionException {
try {
int _type = QUOT;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:109:5: ( '\"' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:109:7: '\"'
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:109:5: ( '\"' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:109:7: '\"'
{
match('\"');
@@ -194,8 +194,8 @@
public final void mOR() throws RecognitionException {
try {
int _type = OR;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:110:3: ( '||' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:110:5: '||'
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:110:3: ( '||' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:110:5: '||'
{
match("||");
@@ -213,8 +213,8 @@
public final void mAND() throws RecognitionException {
try {
int _type = AND;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:111:4: ( '&&' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:111:6: '&&'
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:111:4: ( '&&' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:111:6: '&&'
{
match("&&");
@@ -232,8 +232,8 @@
public final void mLEFTPAR() throws RecognitionException {
try {
int _type = LEFTPAR;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:112:8: ( '(' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:112:10: '('
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:112:8: ( '(' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:112:10: '('
{
match('(');
@@ -250,8 +250,8 @@
public final void mRIGHTPAR() throws RecognitionException {
try {
int _type = RIGHTPAR;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:113:9: ( ')' )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:113:11: ')'
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:113:9: ( ')' )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:113:11: ')'
{
match(')');
@@ -268,10 +268,10 @@
public final void mWS() throws RecognitionException {
try {
int _type = WS;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:3: ( ( ' ' | '\\t' )+ )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:5: ( ' ' | '\\t' )+
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:3: ( ( ' ' | '\\t' )+ )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:5: ( ' ' | '\\t' )+
{
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:5: ( ' ' | '\\t' )+
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:114:5: ( ' ' | '\\t' )+
int cnt3=0;
loop3:
do {
@@ -285,7 +285,7 @@
switch (alt3) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:
{
if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
input.consume();
@@ -322,7 +322,7 @@
// $ANTLR end WS
public void mTokens() throws RecognitionException {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:8: ( LITERAL | ID | EQUALS | QUOT | OR | AND | LEFTPAR | RIGHTPAR | WS )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:8: ( LITERAL | ID | EQUALS | QUOT | OR | AND | LEFTPAR | RIGHTPAR | WS )
int alt4=9;
switch ( input.LA(1) ) {
case '\"':
@@ -432,63 +432,63 @@
switch (alt4) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:10: LITERAL
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:10: LITERAL
{
mLITERAL();
}
break;
case 2 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:18: ID
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:18: ID
{
mID();
}
break;
case 3 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:21: EQUALS
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:21: EQUALS
{
mEQUALS();
}
break;
case 4 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:28: QUOT
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:28: QUOT
{
mQUOT();
}
break;
case 5 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:33: OR
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:33: OR
{
mOR();
}
break;
case 6 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:36: AND
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:36: AND
{
mAND();
}
break;
case 7 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:40: LEFTPAR
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:40: LEFTPAR
{
mLEFTPAR();
}
break;
case 8 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:48: RIGHTPAR
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:48: RIGHTPAR
{
mRIGHTPAR();
}
break;
case 9 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:57: WS
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:1:57: WS
{
mWS();
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsParser.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsParser.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsParser.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/ExpressionsParser.java Wed Nov 19 17:10:15 2008
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g 2008-11-19 22:26:30
+// $ANTLR 3.0.1 /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g 2008-11-19 23:56:22
package org.apache.lenya.ac.attr.antlr;
import java.util.HashMap;
@@ -31,7 +31,7 @@
public String[] getTokenNames() { return tokenNames; }
- public String getGrammarFileName() { return "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g"; }
+ public String getGrammarFileName() { return "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g"; }
/** Map variable name to object holding value */
@@ -61,7 +61,7 @@
// $ANTLR start prog
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:53:1: prog returns [boolean value] : e= orExpression ;
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:53:1: prog returns [boolean value] : e= orExpression ;
public final boolean prog() throws RecognitionException {
boolean value = false;
@@ -69,8 +69,8 @@
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:54:5: (e= orExpression )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:54:7: e= orExpression
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:54:5: (e= orExpression )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:54:7: e= orExpression
{
pushFollow(FOLLOW_orExpression_in_prog50);
e=orExpression();
@@ -93,7 +93,7 @@
// $ANTLR start orExpression
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:57:1: orExpression returns [boolean value] : e= andExpression ( OR e= andExpression )* ;
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:57:1: orExpression returns [boolean value] : e= andExpression ( OR e= andExpression )* ;
public final boolean orExpression() throws RecognitionException {
boolean value = false;
@@ -101,15 +101,15 @@
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:58:5: (e= andExpression ( OR e= andExpression )* )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:58:9: e= andExpression ( OR e= andExpression )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:58:5: (e= andExpression ( OR e= andExpression )* )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:58:9: e= andExpression ( OR e= andExpression )*
{
pushFollow(FOLLOW_andExpression_in_orExpression77);
e=andExpression();
_fsp--;
value = e;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:59:5: ( OR e= andExpression )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:59:5: ( OR e= andExpression )*
loop1:
do {
int alt1=2;
@@ -122,7 +122,7 @@
switch (alt1) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:59:7: OR e= andExpression
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:59:7: OR e= andExpression
{
match(input,OR,FOLLOW_OR_in_orExpression87);
pushFollow(FOLLOW_andExpression_in_orExpression91);
@@ -155,7 +155,7 @@
// $ANTLR start andExpression
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:62:1: andExpression returns [boolean value] : e= comparison ( AND e= comparison )* ;
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:62:1: andExpression returns [boolean value] : e= comparison ( AND e= comparison )* ;
public final boolean andExpression() throws RecognitionException {
boolean value = false;
@@ -163,15 +163,15 @@
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:63:5: (e= comparison ( AND e= comparison )* )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:63:9: e= comparison ( AND e= comparison )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:63:5: (e= comparison ( AND e= comparison )* )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:63:9: e= comparison ( AND e= comparison )*
{
pushFollow(FOLLOW_comparison_in_andExpression125);
e=comparison();
_fsp--;
value = e;
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:64:5: ( AND e= comparison )*
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:64:5: ( AND e= comparison )*
loop2:
do {
int alt2=2;
@@ -184,7 +184,7 @@
switch (alt2) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:64:7: AND e= comparison
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:64:7: AND e= comparison
{
match(input,AND,FOLLOW_AND_in_andExpression135);
pushFollow(FOLLOW_comparison_in_andExpression139);
@@ -217,7 +217,7 @@
// $ANTLR start comparison
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:67:1: comparison returns [boolean value] : (a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR );
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:67:1: comparison returns [boolean value] : (a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR );
public final boolean comparison() throws RecognitionException {
boolean value = false;
@@ -229,7 +229,7 @@
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:68:5: (a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:68:5: (a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR )
int alt3=2;
int LA3_0 = input.LA(1);
@@ -247,7 +247,7 @@
}
switch (alt3) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:68:9: a= atom EQUALS b= atom
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:68:9: a= atom EQUALS b= atom
{
pushFollow(FOLLOW_atom_in_comparison173);
a=atom();
@@ -277,7 +277,7 @@
}
break;
case 2 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:83:9: LEFTPAR e= orExpression RIGHTPAR
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:83:9: LEFTPAR e= orExpression RIGHTPAR
{
match(input,LEFTPAR,FOLLOW_LEFTPAR_in_comparison191);
pushFollow(FOLLOW_orExpression_in_comparison195);
@@ -307,7 +307,7 @@
};
// $ANTLR start atom
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:86:1: atom returns [Object value] : ( quotedString | ID );
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:86:1: atom returns [Object value] : ( quotedString | ID );
public final atom_return atom() throws RecognitionException {
atom_return retval = new atom_return();
retval.start = input.LT(1);
@@ -317,7 +317,7 @@
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:87:5: ( quotedString | ID )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:87:5: ( quotedString | ID )
int alt4=2;
int LA4_0 = input.LA(1);
@@ -335,7 +335,7 @@
}
switch (alt4) {
case 1 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:87:9: quotedString
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:87:9: quotedString
{
pushFollow(FOLLOW_quotedString_in_atom222);
quotedString1=quotedString();
@@ -346,7 +346,7 @@
}
break;
case 2 :
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:88:9: ID
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:88:9: ID
{
ID2=(Token)input.LT(1);
match(input,ID,FOLLOW_ID_in_atom234);
@@ -381,15 +381,15 @@
// $ANTLR start quotedString
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:102:1: quotedString returns [String value] : LITERAL ;
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:102:1: quotedString returns [String value] : LITERAL ;
public final String quotedString() throws RecognitionException {
String value = null;
Token LITERAL3=null;
try {
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:103:7: ( LITERAL )
- // /Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:103:9: LITERAL
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:103:7: ( LITERAL )
+ // /Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g:103:9: LITERAL
{
LITERAL3=(Token)input.LT(1);
match(input,LITERAL,FOLLOW_LITERAL_in_quotedString267);
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions__.g
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions__.g?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions__.g (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions__.g Wed Nov 19 17:10:15 2008
@@ -16,21 +16,21 @@
import org.apache.lenya.ac.attr.ErrorHandler;
}
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 106
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 106
LITERAL: '"' ('a'..'z'|'A'..'Z'|'_'|' '|'.')* '"';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 107
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 107
ID: ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9')*;
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 108
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 108
EQUALS: '==';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 109
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 109
QUOT: '"';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 110
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 110
OR: '||';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 111
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 111
AND: '&&';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 112
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 112
LEFTPAR: '(';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 113
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 113
RIGHTPAR: ')';
-// $ANTLR src "/Users/nobby/apache/lenya/pure-https/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 114
+// $ANTLR src "/Users/nobby/apache/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/attr/antlr/Expressions.g" 114
WS: (' '|'\t')+ {skip();} ;
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileGroup.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileGroup.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileGroup.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileGroup.java Wed Nov 19 17:10:15 2008
@@ -28,8 +28,6 @@
import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
import org.apache.avalon.framework.logger.Logger;
import org.apache.lenya.ac.AccessControlException;
-import org.apache.lenya.ac.Accreditable;
-import org.apache.lenya.ac.Item;
import org.apache.lenya.ac.ItemManager;
import org.apache.lenya.ac.impl.AbstractGroup;
import org.apache.lenya.ac.impl.ItemConfiguration;
@@ -37,7 +35,7 @@
/**
* File-based group implementation.
*/
-public class FileGroup extends AbstractGroup implements Item {
+public class FileGroup extends AbstractGroup implements FileItem {
/**
* @see org.apache.lenya.ac.Group#delete()
@@ -129,7 +127,7 @@
return this.configurationDirectory;
}
- protected void setConfigurationDirectory(File _configurationDirectory) {
+ public void setConfigurationDirectory(File _configurationDirectory) {
assert (_configurationDirectory != null) && _configurationDirectory.isDirectory();
this.configurationDirectory = _configurationDirectory;
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileIPRange.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileIPRange.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileIPRange.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileIPRange.java Wed Nov 19 17:10:15 2008
@@ -41,7 +41,7 @@
/**
* IP range that is stored in a file.
*/
-public class FileIPRange extends AbstractIPRange implements Serializable {
+public class FileIPRange extends AbstractIPRange implements Serializable, FileItem {
/**
*
Added: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItem.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItem.java?rev=719147&view=auto
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItem.java (added)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItem.java Wed Nov 19 17:10:15 2008
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ *
+ */
+
+/* $Id: Item.java 473841 2006-11-12 00:46:38Z gregor $ */
+package org.apache.lenya.ac.file;
+
+import java.io.File;
+
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.lenya.ac.Item;
+
+/**
+ * An item which is stored in a file.
+ */
+public interface FileItem extends Item {
+
+ /**
+ * Sets the configuration directory of this item.
+ * @param configurationDirectory The configuration directory.
+ */
+ void setConfigurationDirectory(File configurationDirectory);
+
+ /**
+ * Configures this item.
+ * @param configuration The configuration.
+ * @throws ConfigurationException when something went wrong.
+ */
+ void configure(Configuration configuration) throws ConfigurationException;
+
+}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItemManager.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItemManager.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItemManager.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileItemManager.java Wed Nov 19 17:10:15 2008
@@ -152,7 +152,7 @@
String fileName = file.getName();
String id = fileName.substring(0, fileName.length() - getSuffix().length());
- Item item = (Item) this.items.get(id);
+ FileItem item = (FileItem) this.items.get(id);
String klass = ItemConfiguration.getItemClass(config);
if (item == null) {
@@ -160,7 +160,7 @@
Class[] paramTypes = { ItemManager.class, Logger.class };
Constructor ctor = Class.forName(klass).getConstructor(paramTypes);
Object[] params = { this, getLogger() };
- item = (Item) ctor.newInstance(params);
+ item = (FileItem) ctor.newInstance(params);
} catch (Exception e) {
String errorMsg = "Exception when trying to instanciate: " + klass
+ " with exception: " + e.fillInStackTrace();
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java Wed Nov 19 17:10:15 2008
@@ -26,7 +26,6 @@
import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
import org.apache.avalon.framework.logger.Logger;
import org.apache.lenya.ac.AccessControlException;
-import org.apache.lenya.ac.Item;
import org.apache.lenya.ac.ItemManager;
import org.apache.lenya.ac.impl.AbstractRole;
import org.apache.lenya.ac.impl.ItemConfiguration;
@@ -35,7 +34,7 @@
* File-based role implementation.
* @version $Id$
*/
-public class FileRole extends AbstractRole implements Item {
+public class FileRole extends AbstractRole implements FileItem {
protected static final String ATTR_ASSIGNABLE = "assignable";
@@ -112,7 +111,7 @@
return this.configurationDirectory;
}
- protected void setConfigurationDirectory(File file) {
+ public void setConfigurationDirectory(File file) {
this.configurationDirectory = file;
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUser.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUser.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUser.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUser.java Wed Nov 19 17:10:15 2008
@@ -29,7 +29,6 @@
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.Group;
import org.apache.lenya.ac.GroupManager;
-import org.apache.lenya.ac.Item;
import org.apache.lenya.ac.ItemManager;
import org.apache.lenya.ac.ManagedUser;
import org.apache.lenya.ac.impl.AbstractUser;
@@ -39,7 +38,7 @@
* File-based user implementation.
* @version $Id$
*/
-public class FileUser extends AbstractUser implements Item, Serializable, ManagedUser {
+public class FileUser extends AbstractUser implements FileItem, Serializable, ManagedUser {
/**
*
@@ -216,7 +215,7 @@
return this.configurationDirectory;
}
- protected void setConfigurationDirectory(File _configurationDirectory) {
+ public void setConfigurationDirectory(File _configurationDirectory) {
assert (_configurationDirectory != null) && _configurationDirectory.isDirectory();
this.configurationDirectory = _configurationDirectory;
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUserManager.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUserManager.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUserManager.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileUserManager.java Wed Nov 19 17:10:15 2008
@@ -29,6 +29,7 @@
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.AccreditableManager;
import org.apache.lenya.ac.Item;
+import org.apache.lenya.ac.ManagedUser;
import org.apache.lenya.ac.User;
import org.apache.lenya.ac.UserManager;
import org.apache.lenya.ac.UserType;
@@ -118,8 +119,8 @@
* @param userId user id of requested user
* @return the requested user or null if there is no user with the given user id
*/
- public User getUser(String userId) {
- return (User) getItem(userId);
+ public ManagedUser getUser(String userId) {
+ return (ManagedUser) getItem(userId);
}
/**
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AbstractIPRange.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AbstractIPRange.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AbstractIPRange.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AbstractIPRange.java Wed Nov 19 17:10:15 2008
@@ -121,7 +121,7 @@
return this.configurationDirectory;
}
- protected void setConfigurationDirectory(File _configurationDirectory) {
+ public void setConfigurationDirectory(File _configurationDirectory) {
this.configurationDirectory = _configurationDirectory;
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AnonymousAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AnonymousAuthenticator.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AnonymousAuthenticator.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/AnonymousAuthenticator.java Wed Nov 19 17:10:15 2008
@@ -26,6 +26,7 @@
import org.apache.lenya.ac.ManagedUserReference;
import org.apache.lenya.ac.UserManager;
import org.apache.lenya.ac.UserReference;
+import org.apache.lenya.ac.attr.AttributeSet;
/**
* The anonymous authenticator authenticates to an anonymous user with no
@@ -78,4 +79,19 @@
}
return authenticated;
}
+
+ public AttributeSet getAttributeSet() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getLoginUri(Request request) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getTargetUri(Request request) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/PolicyBuilder.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/PolicyBuilder.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/PolicyBuilder.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/PolicyBuilder.java Wed Nov 19 17:10:15 2008
@@ -163,7 +163,7 @@
Accreditable accreditable = null;
if (elementName.equals(USER_ELEMENT)) {
- accreditable = getAccreditableManager().getUserManager().getUser(id);
+ accreditable = (Accreditable) getAccreditableManager().getUserManager().getUser(id);
} else if (elementName.equals(GROUP_ELEMENT)) {
accreditable = getAccreditableManager().getGroupManager().getGroup(id);
} else if (elementName.equals(WORLD_ELEMENT)) {
Added: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUser.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUser.java?rev=719147&view=auto
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUser.java (added)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUser.java Wed Nov 19 17:10:15 2008
@@ -0,0 +1,113 @@
+/*
+ * 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.apache.lenya.ac.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.lenya.ac.AccessControlException;
+import org.apache.lenya.ac.User;
+
+/**
+ * Class for users which are not stored in the CMS, but in an external directory
+ * like LDAP or a Shibboleth identity provider.
+ */
+public class TransientUser implements User {
+
+ /**
+ * @param id The user ID.
+ */
+ public TransientUser(String id) {
+ this.id = id;
+ }
+
+ private String id;
+
+ public String getId() {
+ return this.id;
+ }
+
+ private Map attributes = new HashMap();
+
+ public String[] getAttributeValues(String name) throws AccessControlException {
+ return (String[]) this.attributes.get(name);
+ }
+
+ public String[] getAttributeNames() {
+ Set names = this.attributes.keySet();
+ return (String[]) names.toArray(new String[names.size()]);
+ }
+
+ /**
+ * Sets an attribute.
+ * @param name The name.
+ * @param values The values.
+ * @throws AccessControlException if the attribute name is not supported.
+ */
+ public void setAttributeValues(String name, String[] values) throws AccessControlException {
+ this.attributes.put(name, values);
+ }
+
+ protected boolean hasAttributes() {
+ return !this.attributes.isEmpty();
+ }
+
+ private String email;
+ private String description;
+ private String name;
+
+ public String getEmail() {
+ return this.email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDefaultDocumentLocale() {
+ return "en";
+ }
+
+ public String getDefaultMenuLocale() {
+ return "en";
+ }
+
+ public void setDefaultDocumentLocale(String documentLocale) {
+ }
+
+ public void setDefaultMenuLocale(String menuLocale) {
+ }
+
+}
Added: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUserReference.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUserReference.java?rev=719147&view=auto
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUserReference.java (added)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/TransientUserReference.java Wed Nov 19 17:10:15 2008
@@ -0,0 +1,59 @@
+/*
+ * 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.apache.lenya.ac.impl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.lenya.ac.AbstractUserReference;
+import org.apache.lenya.ac.Accreditable;
+import org.apache.lenya.ac.AccreditableManager;
+import org.apache.lenya.ac.User;
+
+/**
+ * A reference to a transient user.
+ */
+public class TransientUserReference extends AbstractUserReference {
+
+ private static final long serialVersionUID = 1L;
+
+ private TransientUser user;
+
+ /**
+ * @param user The user.
+ */
+ public TransientUserReference(TransientUser user) {
+ super(user.getId());
+ this.user = user;
+ }
+
+ public Accreditable[] getAccreditables(AccreditableManager accrMgr) {
+ Set accrs = new HashSet();
+ accrs.addAll(getMatchingGroups(accrMgr, this.user));
+ return (Accreditable[]) accrs.toArray(new Accreditable[accrs.size()]);
+ }
+
+ public User getUser(AccreditableManager accrMgr) {
+ return this.user;
+ }
+
+ public boolean belongsToAccreditableManager(String accrMgrId) {
+ return true;
+ }
+
+}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/UserAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/UserAuthenticator.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/UserAuthenticator.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/ac/impl/UserAuthenticator.java Wed Nov 19 17:10:15 2008
@@ -24,10 +24,13 @@
import org.apache.lenya.ac.AccreditableManager;
import org.apache.lenya.ac.Authenticator;
import org.apache.lenya.ac.Identity;
+import org.apache.lenya.ac.ManagedUser;
import org.apache.lenya.ac.ManagedUserReference;
-import org.apache.lenya.ac.User;
import org.apache.lenya.ac.UserManager;
import org.apache.lenya.ac.UserReference;
+import org.apache.lenya.ac.attr.AttributeSet;
+import org.apache.lenya.ac.attr.impl.AttributeSetImpl;
+import org.apache.lenya.util.ServletHelper;
/**
* User authenticator.
@@ -100,7 +103,7 @@
String password, Identity identity) throws AccessControlException {
UserManager userManager = accreditableManager.getUserManager();
- User user = userManager.getUser(username);
+ ManagedUser user = (ManagedUser) userManager.getUser(username);
if (getLogger().isDebugEnabled()) {
getLogger().debug("Authenticating user: [" + user + "]");
}
@@ -132,4 +135,17 @@
return authenticated;
}
+ public AttributeSet getAttributeSet() {
+ return new AttributeSetImpl();
+ }
+
+ public String getLoginUri(Request request) {
+ String webappUrl = ServletHelper.getWebappURI(request);
+ return webappUrl + "?lenya.module=openid&lenya.action=login";
+ }
+
+ public String getTargetUri(Request request) {
+ return ServletHelper.getWebappURI(request);
+ }
+
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/src/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java Wed Nov 19 17:10:15 2008
@@ -47,6 +47,7 @@
import org.apache.lenya.ac.User;
import org.apache.lenya.ac.UserManager;
import org.apache.lenya.ac.UserReference;
+import org.apache.lenya.ac.impl.DefaultAccessController;
import org.apache.lenya.cms.ac.PolicyUtil;
import org.apache.lenya.util.ServletHelper;
@@ -61,14 +62,17 @@
* <li><strong><code>user-id</code></strong> - the ID of the currently logged-in user</li>
* <li><strong><code>user-name</code></strong> - the full name of the currently logged-in user</li>
* <li><strong><code>user-name:{user-id}</code></strong> - the full name of a specific user</li>
- * <li><strong><code>user-email</code></strong> - the e-mail address of the currently logged-in user</li>
+ * <li><strong><code>user-email</code></strong> - the e-mail address of the currently logged-in user
+ * </li>
* <li><strong><code>user-email:{user-id}</code></strong> - the e-mail address of a specific user</li>
* <li><strong><code>ip-address</code></strong> - the IP address of the client machine</li>
- * <li><strong><code>role-ids</code></strong> - the role IDs which are granted to the current identity</li>
+ * <li><strong><code>role-ids</code></strong> - the role IDs which are granted to the current
+ * identity</li>
* <li><strong><code>user-manager</code></strong> - the user manager object</li>
* <li><strong><code>group-manager</code></strong> - the group manager object</li>
* <li><strong><code>iprange-manager</code></strong> - the IP range manager object</li>
* <li><strong><code>role-manager</code></strong> - the role manager object</li>
+ * <li><strong><code>login-uri</code></strong> - the URI for the redirect to the login screen</li>
* </ul>
*
*/
@@ -114,12 +118,16 @@
* Returns if the current page is SSL protected (true|false).
*/
public static final String SSL = "ssl";
+ /**
+ * The URI for the redirect to the login screen.
+ */
+ public static final String LOGIN_URI = "login-uri";
/**
* The names of the AccessControlModule parameters.
*/
static final String[] PARAMETER_NAMES = { IP_ADDRESS, USER_ID, USER_NAME, USER_EMAIL, ROLE_IDS,
- USER_MANAGER, GROUP_MANAGER, ROLE_MANAGER, IP_RANGE_MANAGER, SSL };
+ USER_MANAGER, GROUP_MANAGER, ROLE_MANAGER, IP_RANGE_MANAGER, SSL, LOGIN_URI };
/**
*
@@ -140,11 +148,9 @@
throw new ConfigurationException("The attribute [" + name + "] is not supported!");
}
- Identity identity = null;
-
- if (session != null) {
- identity = (Identity) session.getAttribute(Identity.class.getName());
- }
+ Identity identity = session != null ? (Identity) session.getAttribute(Identity.class
+ .getName()) : null;
+
User user = getUser(request, parameters, identity);
if (user != null) {
@@ -187,40 +193,31 @@
if (name.equals(USER_MANAGER) || name.equals(GROUP_MANAGER) || name.equals(ROLE_MANAGER)
|| name.equals(IP_RANGE_MANAGER)) {
value = getItemManager(request, name);
- }
-
- if (name.equals(SSL)) {
- ServiceSelector selector = null;
- AccessControllerResolver acResolver = null;
- AccessController accessController = null;
- try {
- selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
- + "Selector");
- acResolver
- = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
-
- String url = ServletHelper.getWebappURI(request);
- accessController = acResolver.resolveAccessController(url);
- AccreditableManager accreditableManager = accessController.getAccreditableManager();
- PolicyManager policyManager = accessController.getPolicyManager();
-
- Policy policy = policyManager.getPolicy(accreditableManager, url);
- value = Boolean.toString(policy.isSSLProtected());
- }
- catch (Exception e) {
- throw new ConfigurationException("Resolving attribute [" + name + "] failed: ", e);
- }
- finally {
- if (selector != null) {
- if (acResolver != null) {
- if (accessController != null) {
- acResolver.release(accessController);
- }
- selector.release(acResolver);
+ } else if (name.equals(LOGIN_URI)) {
+ ValueExtractor extractor = new ValueExtractor() {
+ protected String extractValue(DefaultAccessController accessController,
+ Request request) {
+ return accessController.getAuthenticator().getLoginUri(request);
+ }
+ };
+ value = extractValue(request, extractor);
+ } else if (name.equals(SSL)) {
+ ValueExtractor extractor = new ValueExtractor() {
+ protected String extractValue(DefaultAccessController accessController,
+ Request request) {
+ String url = ServletHelper.getWebappURI(request);
+ AccreditableManager accreditableManager = accessController
+ .getAccreditableManager();
+ PolicyManager policyManager = accessController.getPolicyManager();
+ try {
+ Policy policy = policyManager.getPolicy(accreditableManager, url);
+ return Boolean.toString(policy.isSSLProtected());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
- this.manager.release(selector);
}
- }
+ };
+ value = extractValue(request, extractor);
}
return value;
@@ -342,4 +339,44 @@
this.manager = _manager;
}
+ /**
+ * Class to obtain a property of the access controller without duplicating the lookup/release
+ * boilerplate code.
+ */
+ protected static abstract class ValueExtractor {
+ protected abstract String extractValue(DefaultAccessController accessController,
+ Request request);
+ }
+
+ protected String extractValue(Request request, ValueExtractor extractor)
+ throws ConfigurationException {
+ DefaultAccessController accessController = null;
+ ServiceSelector selector = null;
+ AccessControllerResolver resolver = null;
+
+ try {
+ selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
+ + "Selector");
+ resolver = (AccessControllerResolver) selector
+ .select(AccessControllerResolver.DEFAULT_RESOLVER);
+
+ String url = ServletHelper.getWebappURI(request);
+ accessController = (DefaultAccessController) resolver.resolveAccessController(url);
+
+ return extractor.extractValue(accessController, request);
+
+ } catch (Exception e) {
+ throw new ConfigurationException("Could not determine login URI: ", e);
+ } finally {
+ if (selector != null) {
+ if (resolver != null) {
+ if (accessController != null) {
+ resolver.release(accessController);
+ }
+ selector.release(resolver);
+ }
+ this.manager.release(selector);
+ }
+ }
+ }
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/file/FileUserTest.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/file/FileUserTest.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/file/FileUserTest.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/file/FileUserTest.java Wed Nov 19 17:10:15 2008
@@ -225,7 +225,7 @@
FileUserManager _manager = getUserManager();
assertNotNull(_manager);
- User lenya = _manager.getUser("lenya");
+ FileUser lenya = (FileUser) _manager.getUser("lenya");
assertNotNull(lenya);
assertTrue(lenya.authenticate("levi"));
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/impl/UserManagerTest.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/impl/UserManagerTest.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/impl/UserManagerTest.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/ac/java/test/org/apache/lenya/ac/impl/UserManagerTest.java Wed Nov 19 17:10:15 2008
@@ -74,7 +74,7 @@
FileRole adminRole = new FileRole(getAccreditableManager().getRoleManager(), getLogger(),
adminRoleId);
- User user = new FileUser(getAccreditableManager().getUserManager(), getLogger(), userName,
+ FileUser user = new FileUser(getAccreditableManager().getUserManager(), getLogger(), userName,
"Alice in Wonderland", "[email protected]", "secret");
editorRole.save();
Modified: lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AbstractChangePassword.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AbstractChangePassword.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AbstractChangePassword.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AbstractChangePassword.java Wed Nov 19 17:10:15 2008
@@ -17,7 +17,7 @@
*/
package org.apache.lenya.cms.ac.usecases;
-import org.apache.lenya.ac.User;
+import org.apache.lenya.ac.ManagedUser;
/**
@@ -28,7 +28,7 @@
protected static final String NEW_PASSWORD = "newPassword";
protected static final String CONFIRM_PASSWORD = "confirmPassword";
- protected abstract User getUser();
+ protected abstract ManagedUser getUser();
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
Modified: lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AddUser.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AddUser.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AddUser.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AddUser.java Wed Nov 19 17:10:15 2008
@@ -20,6 +20,7 @@
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.ItemUtil;
+import org.apache.lenya.ac.ManagedUser;
import org.apache.lenya.ac.User;
import org.apache.lenya.ac.UserManager;
import org.apache.lenya.ac.file.FileUser;
@@ -108,7 +109,7 @@
String email = getParameterAsString(UserProfile.EMAIL);
String className = getParameterAsString(CLASS_NAME);
- User user;
+ ManagedUser user;
if (className.equals(LDAPUser.class.getName())) {
String ldapId = getParameterAsString(LDAP_ID);
user = new LDAPUser(userManager, getLogger(), userId, email, ldapId, getLogger());
Modified: lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePassword.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePassword.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePassword.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePassword.java Wed Nov 19 17:10:15 2008
@@ -17,7 +17,7 @@
*/
package org.apache.lenya.cms.ac.usecases;
-import org.apache.lenya.ac.User;
+import org.apache.lenya.ac.ManagedUser;
/**
* Usecase to change a user's password. The old password is checked.
@@ -29,7 +29,7 @@
/**
* @return Always returns the currently logged in user.
*/
- protected User getUser() {
+ protected ManagedUser getUser() {
String id = getSession().getIdentity().getUserReference().getId();
return getUserManager().getUser(id);
}
@@ -47,7 +47,7 @@
*/
private void checkOldPassword() {
String oldPassword = getParameterAsString(OLD_PASSWORD);
- boolean authenticated = getUser().authenticate(oldPassword);
+ boolean authenticated = ((ManagedUser) getUser()).authenticate(oldPassword);
if (!authenticated) {
addErrorMessage("The old password is not correct.");
}
Modified: lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePasswordAdmin.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePasswordAdmin.java?rev=719147&r1=719146&r2=719147&view=diff
==============================================================================
--- lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePasswordAdmin.java (original)
+++ lenya/sandbox/access_control_redesign/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ChangePasswordAdmin.java Wed Nov 19 17:10:15 2008
@@ -17,16 +17,16 @@
*/
package org.apache.lenya.cms.ac.usecases;
-import org.apache.lenya.ac.User;
+import org.apache.lenya.ac.ManagedUser;
/**
* Usecase to change a user's password.
*/
public class ChangePasswordAdmin extends AbstractChangePassword {
- private User user;
+ private ManagedUser user;
- protected User getUser() {
+ protected ManagedUser getUser() {
if (this.user == null) {
String userId = getParameterAsString(UserProfile.USER_ID);
this.user = getUserManager().getUser(userId);
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.