Author: ronvoe122
Date: 2007-06-10 07:06:11-0700
New Revision: 10450
Removed:
trunk/src/java/org/tigris/scarab/util/AnonymousUserUtil.java
Modified:
trunk/src/java/org/tigris/scarab/actions/ChangePassword.java
trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java
trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java
trunk/src/java/org/tigris/scarab/actions/Login.java
trunk/src/java/org/tigris/scarab/actions/Logout.java
trunk/src/java/org/tigris/scarab/actions/Register.java
trunk/src/java/org/tigris/scarab/actions/admin/Approval.java
trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java
trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java
trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java
trunk/src/java/org/tigris/scarab/om/ScarabModule.java
trunk/src/java/org/tigris/scarab/om/ScarabUser.java
trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java
trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java
trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java
trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java
trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java
trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java
trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java
trunk/src/java/org/tigris/scarab/util/ScarabLink.java
trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java
trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm
Log:
Scarab user management:
-improved caching of permissions [SCB1691]
-integrated anonymous user functionality into ScarabUser
-centralized login methods
-wrapped parts of TurbineSecurity in ScarabUser
Modified: trunk/src/java/org/tigris/scarab/actions/ChangePassword.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/ChangePassword.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/ChangePassword.java&p2=trunk/src/java/org/tigris/scarab/actions/ChangePassword.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/ChangePassword.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/ChangePassword.java 2007-06-10 07:06:11-0700
@@ -57,6 +57,7 @@
// Scarab Stuff
import org.tigris.scarab.om.ScarabUser;
+import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.actions.base.ScarabTemplateAction;
import org.tigris.scarab.tools.ScarabRequestTool;
@@ -113,8 +114,7 @@
{
try
{
- ScarabUser confirmedUser = (ScarabUser)
- TurbineSecurity.getUser(username);
+ ScarabUser confirmedUser = ScarabUserManager.getInstance(username);
// first we need to save the user out
confirmedUser.setPasswordExpire();
Modified: trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java&p2=trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/ForgotPassword.java 2007-06-10 07:06:11-0700
@@ -62,6 +62,7 @@
// Scarab Stuff
import org.tigris.scarab.om.ScarabUser;
+import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.tools.ScarabLocalizationTool;
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
@@ -69,7 +70,6 @@
import org.tigris.scarab.util.Email;
import org.tigris.scarab.util.Log;
import org.tigris.scarab.util.PasswordGenerator;
-import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.actions.base.ScarabTemplateAction;
/**
@@ -109,7 +109,7 @@
ScarabUser user = null;
try
{
- user = (ScarabUser) TurbineSecurity.getUser(username);
+ user = ScarabUserManager.getInstance(username);
String tempPassword = PasswordGenerator.generate();
Modified: trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java&p2=trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/HandleRoleRequests.java 2007-06-10 07:06:11-0700
@@ -118,12 +118,13 @@
boolean autoApprove = Arrays.asList(autoRoles).contains(roleName);
if (autoApprove)
{
- TurbineSecurity.grant(user, module,
- TurbineSecurity.getRole(roleName));
+ Role role = TurbineSecurity.getRole(roleName);
+
+ TurbineSecurity.grant(user, module, role);
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.GET_ACL);
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE, roleName, module.getModuleId());
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.GET_ACL);
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.HAS_ROLE_IN_MODULE, (Serializable)role, module);
autoApproveRoleSet = addToRoleSet(autoApproveRoleSet,module, roleName);
}
Modified: trunk/src/java/org/tigris/scarab/actions/Login.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/Login.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/Login.java&p2=trunk/src/java/org/tigris/scarab/actions/Login.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/Login.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/Login.java 2007-06-10 07:06:11-0700
@@ -65,11 +65,11 @@
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
import org.tigris.scarab.tools.localization.Localizable;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.util.Log;
import org.tigris.scarab.om.ScarabUser;
import org.tigris.scarab.om.Module;
+import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.actions.base.ScarabTemplateAction;
import org.tigris.scarab.services.security.ScarabSecurity;
@@ -82,6 +82,44 @@
*/
public class Login extends ScarabTemplateAction
{
+
+ public static void simpleLogin(RunData data, ScarabUser user)
+ {
+ if(user.getUserName().equals("")) //is it a TurbineAnonymousUser?
+ {
+ user.setHasLoggedIn(Boolean.FALSE);
+ }
+ else
+ {
+ user.setHasLoggedIn(Boolean.TRUE);
+ try
+ {
+ user.updateLastLogin();
+ }
+ catch(Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ data.setUser(user);
+ data.save();
+ }
+
+ public static void anonymousLogin(RunData data)
+ {
+ ScarabUser anonymous = null;
+ try
+ {
+ anonymous = ScarabUserManager.getAnonymousUser();
+ }
+ catch(Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ simpleLogin(data, anonymous);
+ }
+
+
/**
* This manages clicking the Login button
*/
@@ -255,11 +293,9 @@
* sets the template to the passed in template
*/
private boolean failAction(RunData data, String template)
- throws DataBackendException, UnknownEntityException
{
- // Retrieve an anonymous user
- AnonymousUserUtil.anonymousLogin(data);
- setTarget(data, template);
+ anonymousLogin(data);
+ setTarget(data, template);
return false;
}
@@ -270,6 +306,5 @@
throws Exception
{
doLogin(data, context);
- }
-
+ }
}
Modified: trunk/src/java/org/tigris/scarab/actions/Logout.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/Logout.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/Logout.java&p2=trunk/src/java/org/tigris/scarab/actions/Logout.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/Logout.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/Logout.java 2007-06-10 07:06:11-0700
@@ -54,7 +54,6 @@
import org.tigris.scarab.screens.ModuleSwitchingLink;
import org.tigris.scarab.tools.ScarabRequestTool;
import org.tigris.scarab.tools.localization.L10NKeySet;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.actions.base.ScarabTemplateAction;
@@ -79,8 +78,7 @@
scarabR.setCurrentModule(null);
data.getParameters().remove(ScarabConstants.CURRENT_MODULE);
data.setACL(null);
- //data.setUser(TurbineSecurity.getAnonymousUser());
- AnonymousUserUtil.anonymousLogin(data);
+ Login.anonymousLogin(data);
context.put("modulelink", new ModuleSwitchingLink(data));
if(data.getUser()!=null)
Modified: trunk/src/java/org/tigris/scarab/actions/Register.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/Register.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/Register.java&p2=trunk/src/java/org/tigris/scarab/actions/Register.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/Register.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/Register.java 2007-06-10 07:06:11-0700
@@ -49,6 +49,7 @@
// Turbine Stuff
import java.util.Locale;
+import org.apache.torque.TorqueException;
import org.apache.turbine.RunData;
import org.apache.turbine.TemplateContext;
import org.apache.turbine.Turbine;
@@ -57,8 +58,6 @@
import org.apache.fulcrum.intake.model.Field;
import org.apache.fulcrum.intake.model.Group;
-import org.apache.fulcrum.security.TurbineSecurity;
-import org.apache.fulcrum.security.util.TurbineSecurityException;
// Scarab Stuff
import org.tigris.scarab.om.ScarabUser;
@@ -67,7 +66,6 @@
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
import org.tigris.scarab.tools.localization.Localizable;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.Email;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.util.Log;
@@ -144,7 +142,6 @@
if (intake.isAllValid())
{
ScarabRequestTool scarabR = getScarabRequestTool(context);
- ScarabLocalizationTool l10n = getLocalizationTool(context);
Object user = data
.getUser()
.getTemp(ScarabConstants.SESSION_REGISTER);
@@ -181,7 +178,7 @@
}
// get an anonymous user
- ScarabUser su = (ScarabUser) (ScarabUser) AnonymousUserUtil.getAnonymousUser();
+ ScarabUser su = ScarabUserManager.getAnonymousUser();
try
{
register.setProperties(su);
@@ -235,7 +232,7 @@
if (ScarabUserImplPeer.checkExists(su))
{
String username = su.getUserName();
- ScarabUser scarabUser=(ScarabUser) TurbineSecurity.getUser(username);
+ ScarabUser scarabUser=ScarabUserManager.getInstance(username);
String cs = scarabUser.getConfirmed();
if(!cs.equals(ScarabUser.DELETED))
{
@@ -348,7 +345,6 @@
IntakeTool intake = getIntakeTool(context);
if (intake.isAllValid())
{
- ScarabLocalizationTool l10n = getLocalizationTool(context);
ScarabRequestTool scarabR = getScarabRequestTool(context);
Object user = data
.getUser()
@@ -401,8 +397,7 @@
if(ScarabUserImpl.confirmUser(username))
{
// NO PROBLEMS! :-)
- ScarabUser confirmedUser = (ScarabUser)
- TurbineSecurity.getUser(username);
+ ScarabUser confirmedUser = ScarabUserManager.getInstance(username);
// we set this to false and make people login again
// because of this issue:
// http://scarab.tigris.org/issues/show_bug.cgi?id=115
@@ -447,7 +442,6 @@
.getUser()
.getTemp(ScarabConstants.SESSION_REGISTER);
- ScarabLocalizationTool l10n = getLocalizationTool(context);
IntakeTool intake = getIntakeTool(context);
Group register = null;
if (user != null && user instanceof ScarabUser)
@@ -469,24 +463,23 @@
String username = register.get("UserName").toString();
try
{
- // Authenticate the user and get the object.
- user = TurbineSecurity.getUser(username);
+ user = ScarabUserManager.getInstance(username);
- // grab the ScarabRequestTool object so that we can
- // populate the User object for redisplay of the form
- // data on the screen
- if (scarabR != null)
- {
- scarabR.setUser((ScarabUser) user);
- }
}
- catch (TurbineSecurityException e)
+ catch (TorqueException e)
{
scarabR.setAlertMessage(L10NKeySet.InvalidUsername);
- Log.get().error ("RegisterConfirm: ", e);
return;
}
+ // grab the ScarabRequestTool object so that we can
+ // populate the User object for redisplay of the form
+ // data on the screen
+ if (scarabR != null)
+ {
+ scarabR.setUser((ScarabUser) user);
+ }
+
// send an email that is for confirming the registration
sendConfirmationEmail((ScarabUser) user, context);
scarabR.setConfirmMessage(L10NKeySet.ConfirmationCodeSent);
Modified: trunk/src/java/org/tigris/scarab/actions/admin/Approval.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/admin/Approval.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/admin/Approval.java&p2=trunk/src/java/org/tigris/scarab/actions/admin/Approval.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/admin/Approval.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/admin/Approval.java 2007-06-10 07:06:11-0700
@@ -52,6 +52,8 @@
import org.apache.fulcrum.parser.ParameterParser;
import org.apache.fulcrum.security.TurbineSecurity;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.util.AccessControlList;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.torque.om.NumberKey;
@@ -303,26 +305,21 @@
}
else
{
+ Role role = TurbineSecurity.getRole(roleName);
try
{
- TurbineSecurity.grant(user,
- (org.apache.fulcrum.security.entity.Group)module,
- TurbineSecurity.getRole(roleName));
+ TurbineSecurity.grant(user, (Group)module, role);
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.GET_ACL);
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE, roleName, module.getModuleId());
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.GET_ACL);
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.HAS_ROLE_IN_MODULE, (Serializable)role, module);
}
catch (DataBackendException e)
{
// maybe the role request was approved
// by another admin?
- AccessControlList acl = TurbineSecurity
- .getACL(user);
- if (acl
- .hasRole(
- TurbineSecurity.getRole(roleName),
- (org.apache.fulcrum.security.entity.Group) module))
+ AccessControlList acl = user.getACL();
+ if (acl.hasRole( role, (Group) module ) )
{
String[] args = {roleName,
user.getUserName(),
Modified: trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java&p2=trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/admin/ManagePermissions.java 2007-06-10 07:06:11-0700
@@ -147,6 +147,8 @@
String name = data.getParameters().getString("name");
Permission permission = TurbineSecurity.getPermission(name);
TurbineSecurity.removePermission(permission);
+
+ ScarabUserManager.getMethodResult().remove( ScarabUserManager.SCARAB_USER_IMPL, ScarabUserManager.ACL_HAS_PERMISSION );
ScarabUserManager.getMethodResult().clear();
Modified: trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java&p2=trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/admin/ManageUser.java 2007-06-10 07:06:11-0700
@@ -71,7 +71,6 @@
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
import org.tigris.scarab.tools.localization.Localizable;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.Log;
import org.tigris.scarab.util.PasswordGenerator;
import org.tigris.scarab.util.ScarabConstants;
@@ -115,7 +114,7 @@
IntakeTool.DEFAULT_KEY, false);
}
- su = (ScarabUser) AnonymousUserUtil.getAnonymousUser();
+ su = (ScarabUser) ScarabUserManager.getAnonymousUser();
su.setUserName(register.get("UserName").toString());
su.setFirstName(register.get("FirstName").toString());
su.setLastName(register.get("LastName").toString());
@@ -201,7 +200,7 @@
// if we got here, then all must be good...
String username = data.getParameters().getString("username");
- su = (ScarabUser) TurbineSecurity.getUser(username);
+ su = ScarabUserManager.getInstance(username);
try
{
if ((su != null) && (register != null))
@@ -217,7 +216,10 @@
su.setConfirmed(data.getParameters().getString("accountStatus"));
ScarabUserManager.putInstance((ScarabUserImpl)su);
TurbineSecurity.saveUser(su);
-
+ ScarabUserManager.getMethodResult().remove(
+ ScarabUserManager.SCARAB_USER_MANAGER,
+ ScarabUserManager.GET_INSTANCE, username
+ );
//
// Fix: SCB1065
// I think this fix really belongs in Turbine, but
@@ -264,6 +266,10 @@
TurbineSecurity.forcePassword(su, password);
su.setPasswordExpire(Calendar.getInstance());
TurbineSecurity.saveUser(su);
+ ScarabUserManager.getMethodResult().remove(
+ ScarabUserManager.SCARAB_USER_MANAGER,
+ ScarabUserManager.GET_INSTANCE, username
+ );
User me = data.getUser();
try
{
@@ -336,9 +342,13 @@
try
{
- user = TurbineSecurity.getUser(username);
+ user = ScarabUserManager.getInstance(username);
user.setConfirmed(ScarabUser.DELETED);
TurbineSecurity.saveUser(user);
+ ScarabUserManager.getMethodResult().remove(
+ ScarabUserManager.SCARAB_USER_MANAGER,
+ ScarabUserManager.GET_INSTANCE, username
+ );
List lista = (List)data.getUser().getTemp("userList");
if (lista != null)
lista.set(lista.indexOf(user), user);
@@ -374,7 +384,7 @@
throws Exception
{
String username = data.getParameters().getString("username");
- User user = TurbineSecurity.getUser(username);
+ User user = ScarabUserManager.getInstance(username);
AccessControlList acl = ((ScarabUser)user).getACL();
@@ -397,21 +407,21 @@
{
TurbineSecurity.grant(user, groups[i], roles[j]);
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE,
- roles[j].getName(), ((Module)groups[i]).getModuleId());
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.HAS_ROLE_IN_MODULE,
+ (Serializable) roles[j], (Module)groups[i]);
}
else if (formGroupRole == null && acl.hasRole(roles[j], groups[i]))
{
TurbineSecurity.revoke(user, groups[i], roles[j]);
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE,
- roles[j].getName(), ((Module)groups[i]).getModuleId());
+ ScarabUserManager.getMethodResult().remove( user, ScarabUserManager.HAS_ROLE_IN_MODULE,
+ (Serializable) roles[j], (Module)groups[i]);
}
}
}
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.GET_ACL);
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.GET_ACL);
}
// all the goto's (button redirects) are here
Modified: trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java&p2=trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java (original)
+++ trunk/src/java/org/tigris/scarab/om/AbstractScarabUser.java 2007-06-10 07:06:11-0700
@@ -244,14 +244,16 @@
public abstract String getLastName();
/**
+ * @throws TorqueException
* @see org.tigris.scarab.om.ScarabUser#hasPermission(String, Module)
*/
- public abstract boolean hasPermission(String perm, Module module);
+ public abstract boolean hasPermission(String perm, Module module) throws TorqueException;
/**
+ * @throws TorqueException
* @see org.tigris.scarab.om.ScarabUser#hasPermission(String, List)
*/
- public boolean hasPermission(String perm, List modules)
+ public boolean hasPermission(String perm, List modules) throws TorqueException
{
boolean hasPerm = false;
if (modules != null && !modules.isEmpty())
@@ -681,7 +683,7 @@
* @see org.apache.torque.om.Persistent#save()
* this implementation throws an UnsupportedOperationException.
*/
- public void save() throws TorqueException
+ public void save()
{
throw new UnsupportedOperationException("Not implemented"); //EXCEPTION
}
@@ -690,7 +692,7 @@
* @see org.apache.torque.om.Persistent#save(String)
* this implementation throws an UnsupportedOperationException.
*/
- public void save(String dbName) throws TorqueException
+ public void save(String dbName)
{
throw new UnsupportedOperationException("Not implemented"); //EXCEPTION
}
@@ -699,7 +701,7 @@
* @see org.apache.torque.om.Persistent#save(Connection)
* this implementation throws an UnsupportedOperationException.
*/
- public void save(Connection dbCon) throws TorqueException
+ public void save(Connection dbCon)
{
throw new UnsupportedOperationException("Not implemented"); //EXCEPTION
}
@@ -744,7 +746,6 @@
* @see ScarabUser#getHomePage()
*/
public String getHomePage()
- throws TorqueException
{
return getHomePage(getCurrentModule());
}
@@ -807,8 +808,9 @@
/**
* This method is used in getHomePage() and expects the homePage to
* be non-null.
+ * @throws TorqueException
*/
- private boolean isHomePageValid(String homePage, Module module)
+ private boolean isHomePageValid(String homePage, Module module) throws TorqueException
{
boolean result = true;
String perm = ScarabSecurity
@@ -1147,7 +1149,6 @@
*/
protected void sortRMITList(List rmits,
final String sortColumn, String sortPolarity)
- throws TorqueException
{
final int polarity = ("desc".equals(sortPolarity)) ? -1 : 1;
Comparator c = new Comparator()
@@ -1517,7 +1518,6 @@
private void setUsersMap(final Map map, final Map users)
- throws TorqueException
{
final Object key = (users != null ? getGenThreadKey() : getThreadKey());
if (key == null)
@@ -1559,7 +1559,6 @@
* @see org.tigris.scarab.om.ScarabUser#getAssociatedUsersMap()
*/
public Map getAssociatedUsersMap()
- throws TorqueException
{
return (Map) associatedUsersMap.get(getGenThreadKey());
}
@@ -1568,7 +1567,6 @@
* @see org.tigris.scarab.om.ScarabUser#setAssociatedUsersMap(Map)
*/
public void setAssociatedUsersMap(Map associatedUsers)
- throws TorqueException
{
setUsersMap(associatedUsersMap, associatedUsers);
}
@@ -1577,7 +1575,6 @@
* @see org.tigris.scarab.om.ScarabUser#getSelectedUsersMap()
*/
public Map getSelectedUsersMap()
- throws TorqueException
{
return (Map) selectedUsersMap.get(getGenThreadKey());
}
@@ -1586,7 +1583,6 @@
* @see org.tigris.scarab.om.ScarabUser#setSelectedUsersMap(Map)
*/
public void setSelectedUsersMap(Map selectedUsers)
- throws TorqueException
{
setUsersMap(selectedUsersMap, selectedUsers);
}
@@ -1611,7 +1607,6 @@
* The current issue type
*/
public IssueType getCurrentIssueType()
- throws TorqueException
{
return (IssueType)currentIssueType.get();
}
@@ -1649,7 +1644,7 @@
* @see org.tigris.scarab.om.ScarabUser#updateIssueListAttributes(List)
*/
public void updateIssueListAttributes(List attributes)
- throws TorqueException, TurbineSecurityException
+ throws TorqueException
{
MITList mitList = getCurrentMITList();
Modified: trunk/src/java/org/tigris/scarab/om/ScarabModule.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/ScarabModule.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/om/ScarabModule.java&p2=trunk/src/java/org/tigris/scarab/om/ScarabModule.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/ScarabModule.java (original)
+++ trunk/src/java/org/tigris/scarab/om/ScarabModule.java 2007-06-10 07:06:11-0700
@@ -875,8 +875,8 @@
TurbineSecurity.grant(user,this,role);
// TODO: Needs to be refactored into the Users system?
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.GET_ACL);
- ScarabUserManager.getMethodResult().remove(user.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE, role.getName(), this.getModuleId());
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.GET_ACL);
+ ScarabUserManager.getMethodResult().remove(user, ScarabUserManager.HAS_ROLE_IN_MODULE, (Serializable)role, this);
}
/**
Modified: trunk/src/java/org/tigris/scarab/om/ScarabUser.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/ScarabUser.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/om/ScarabUser.java&p2=trunk/src/java/org/tigris/scarab/om/ScarabUser.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/ScarabUser.java (original)
+++ trunk/src/java/org/tigris/scarab/om/ScarabUser.java 2007-06-10 07:06:11-0700
@@ -227,13 +227,14 @@
* @return true if the permission exists for the user within the
* given module, false otherwise
*/
- boolean hasPermission(String permission, Module module);
+ boolean hasPermission(String permission, Module module) throws TorqueException;
/**
* Returns true if this user has the given permission within all the given
* modules, false otherwise. If the list is null or empty
+ * @throws TorqueException
*/
- boolean hasPermission(String permission, List modules);
+ boolean hasPermission(String permission, List modules) throws TorqueException;
/**
* Gets all modules which are currently associated with this user
@@ -539,7 +540,7 @@
* false otherwise.
* @return
*/
- public boolean isUserAnonymous();
+ public boolean isUserAnonymous() throws TorqueException;
public List getAssignIssuesList();
Modified: trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java&p2=trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java (original)
+++ trunk/src/java/org/tigris/scarab/om/ScarabUserImpl.java 2007-06-10 07:06:11-0700
@@ -73,15 +73,12 @@
import org.apache.fulcrum.security.util.EntityExistsException;
import org.apache.fulcrum.security.util.GroupSet;
import org.apache.fulcrum.security.util.TurbineSecurityException;
-import org.apache.log4j.Logger;
import org.apache.torque.TorqueException;
import org.apache.torque.util.Criteria;
import org.apache.turbine.Turbine;
import org.tigris.scarab.reports.ReportBridge;
import org.tigris.scarab.services.cache.ScarabCache;
import org.tigris.scarab.services.security.ScarabSecurity;
-import org.tigris.scarab.tools.localization.L10NKeySet;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.Log;
import org.tigris.scarab.util.ScarabException;
@@ -101,9 +98,6 @@
extends BaseScarabUserImpl
implements ScarabUser
{
- private static final Logger TORQUE_LOG =
- Logger.getLogger("org.apache.torque");
-
public static final String PASSWORD_EXPIRE = "PASSWORD_EXPIRE";
private AbstractScarabUser internalUser;
@@ -159,18 +153,17 @@
}
public boolean hasPermission(String perm, Module module)
+ throws TorqueException
{
return hasPrivatePermission(perm, module);
}
public List getModules()
- throws TorqueException
{
return getModules(false);
}
public List getModules(boolean showDeletedModules)
- throws TorqueException
{
List permList = ScarabSecurity.getAllPermissions();
String[] perms = new String[permList.size()];
@@ -226,6 +219,7 @@
return getRModuleUserAttributes(crit);
}
private boolean hasPrivatePermission(String perm, Module module)
+ throws TorqueException
{
return hasPermission(perm, module);
}
@@ -245,6 +239,21 @@
rmua.delete(this);
}
+ public static boolean aclHasPermission(AccessControlList acl, String perm, Module module )
+ {
+ Boolean hasPermission = (Boolean)ScarabUserManager.getMethodResult().get(
+ ScarabUserManager.SCARAB_USER_IMPL, ScarabUserManager.ACL_HAS_PERMISSION, acl, perm, module
+ );
+ if (hasPermission == null)
+ {
+ hasPermission = new Boolean( acl.hasPermission(perm, (Group)module) );
+ ScarabUserManager.getMethodResult().put(
+ hasPermission, ScarabUserManager.SCARAB_USER_IMPL, ScarabUserManager.ACL_HAS_PERMISSION, acl, perm, module
+ );
+ }
+ return hasPermission.booleanValue();
+ }
+
/**
* Utility method that takes a username and a confirmation code
* and will return true if there is a match and false if no match.
@@ -301,9 +310,10 @@
{
try
{
- User user = TurbineSecurity.getUser(username);
+ User user = ScarabUserManager.getInstance(username);
user.setConfirmed(User.CONFIRM_DATA);
TurbineSecurity.saveUser(user);
+ ScarabUserManager.getMethodResult().remove( ScarabUserManager.SCARAB_USER_MANAGER, ScarabUserManager.GET_INSTANCE, username );
return true;
}
catch (Exception e)
@@ -318,100 +328,44 @@
* module or within the 'Global' module.
*/
public boolean hasPermission(String perm, Module module)
+ throws TorqueException
{
- boolean hasPermission = false;
- AccessControlList aclAnonymous = null;
- try
- {
- if (AnonymousUserUtil.anonymousAccessAllowed())
- {
- aclAnonymous = ((ScarabUser)AnonymousUserUtil.getAnonymousUser()).getACL();
- }
- }
- catch (Exception e)
- {
- getLog().error("hasPermission: " + e);
- }
-
- if (TORQUE_LOG.isDebugEnabled())
- {
- String name = (module == null) ? null : module.getName();
- TORQUE_LOG.debug("ScarabUserImpl.hasPermission(" + perm + ", " +
- name + ") started");
- }
-
if (perm.equals(ScarabSecurity.USER__CHANGE_PASSWORD) && isUserAnonymous())
{
return false;
}
-
- // Cache permission check results internally, so that we do not have
- // to ask the acl everytime. FIXME! This mechanism needs to be
- // modified to allow for invalidating the cached results. Possible
- // candidates are the TurbineGlobalCacheService or JCS. But keeping
- // this in place for the moment while investigating other sql, so
- // turbine's security sql does not dominate.
- String moduleKey = (module == null) ? null : module.getQueryKey();
- Object obj = getTemp("hasPermission" + perm + moduleKey);
- if (obj == null)
- {
- try
+
+ if (module == null)
{
- AccessControlList acl = this.getACL();
- if (acl != null)
- {
- if (module != null)
- {
- // first check for the permission in the specified module
- hasPermission = acl.hasPermission(perm, (Group)module);
- if (!hasPermission && aclAnonymous != null)
- {
- hasPermission |= aclAnonymous.hasPermission(perm, (Group)module);
- }
-
- }
-
- if (!hasPermission)
- {
- // check for the permission within the 'Global' module
- Module globalModule = ModuleManager
- .getInstance(Module.ROOT_ID);
- hasPermission = acl.hasPermission(perm,
- (Group)globalModule);
- if (!hasPermission && aclAnonymous != null)
- {
- hasPermission |= aclAnonymous.hasPermission(perm, (Group)globalModule);
- }
- }
- }
+ module = ModuleManager.getInstance(Module.ROOT_ID);
}
- catch (Exception e)
+
+ AccessControlList aclAnonymous = null;
+ if (ScarabUserManager.anonymousAccessAllowed())
{
- hasPermission = false;
- getLog().error("Permission check failed on:" + perm, e);
+ aclAnonymous = ScarabUserManager.getAnonymousUser().getACL();
}
- Boolean b = hasPermission ? Boolean.TRUE : Boolean.FALSE;
- setTemp("hasPermission" + perm + moduleKey, b);
- }
- else
+ boolean hasPermission = false;
+
+ AccessControlList acl = this.getACL();
+ if (acl != null)
{
- hasPermission = ((Boolean)obj).booleanValue();
- }
-
- if (TORQUE_LOG.isDebugEnabled())
+ hasPermission = aclHasPermission(acl, perm, module);
+ }
+ if (!hasPermission && aclAnonymous != null)
{
- String name = (module == null) ? null : module.getName();
- TORQUE_LOG.debug("ScarabUserImpl.hasPermission(" + perm + ", " +
- name + ") end\n");
+ hasPermission = aclHasPermission(aclAnonymous, perm, module);
}
+
return hasPermission;
}
/**
+ * @throws TorqueException
* @see org.tigris.scarab.om.ScarabUser#hasPermission(String, List)
*/
- public boolean hasPermission(String perm, List modules)
+ public boolean hasPermission(String perm, List modules) throws TorqueException
{
return internalUser.hasPermission(perm, modules);
}
@@ -692,7 +646,6 @@
* @see org.tigris.scarab.om.ScarabUser#getReportingIssue(String)
*/
public Issue getReportingIssue(String key)
- throws TorqueException
{
return internalUser.getReportingIssue(key);
}
@@ -718,7 +671,6 @@
* @see org.tigris.scarab.om.ScarabUser#getCurrentReport(String)
*/
public ReportBridge getCurrentReport(String key)
- throws TorqueException
{
return internalUser.getCurrentReport(key);
}
@@ -802,7 +754,7 @@
* @exception Exception if problem querying for the password.
*/
public boolean isPasswordExpired()
- throws TorqueException, ScarabException
+ throws TorqueException
{
// Password for anonymous never expires.
if (isUserAnonymous())
@@ -827,14 +779,17 @@
/**
* Returns true if the user is the one set in scarab.anonymous.username, and
* false otherwise.
+ * Note: If anonymous access is denied per configuration, this method
+ * always returns false!
* @return
*/
public boolean isUserAnonymous()
+ throws TorqueException
{
boolean brdo = false;
- String anonymous = Turbine.getConfiguration().getString("scarab.anonymous.username", null);
- String username = getUserName();
- if (anonymous != null && username.equals(anonymous))
+ String anonymous = ScarabUserManager.getAnonymousUserName();
+ if (ScarabUserManager.anonymousAccessAllowed() &&
+ anonymous != null && getUserName().equals(anonymous))
{
brdo = true;
}
@@ -870,7 +825,6 @@
* @see ScarabUser#getHomePage()
*/
public String getHomePage()
- throws TorqueException
{
return internalUser.getHomePage();
}
@@ -879,7 +833,6 @@
* @see ScarabUser#getHomePage(Module)
*/
public String getHomePage(Module module)
- throws TorqueException
{
return internalUser.getHomePage(module);
}
@@ -1042,25 +995,21 @@
}
public Map getAssociatedUsersMap()
- throws TorqueException
{
return internalUser.getAssociatedUsersMap();
}
public void setAssociatedUsersMap(Map associatedUsers)
- throws TorqueException
{
internalUser.setAssociatedUsersMap(associatedUsers);
}
public Map getSelectedUsersMap()
- throws TorqueException
{
return internalUser.getSelectedUsersMap();
}
public void setSelectedUsersMap(Map selectedUsers)
- throws TorqueException
{
internalUser.setSelectedUsersMap(selectedUsers);
}
@@ -1103,7 +1052,6 @@
* The current issue type
*/
public IssueType getCurrentIssueType()
- throws TorqueException
{
return internalUser.getCurrentIssueType();
}
@@ -1129,13 +1077,12 @@
* @see org.tigris.scarab.om.ScarabUser#updateIssueListAttributes(List)
*/
public void updateIssueListAttributes(List attributes)
- throws TorqueException, TurbineSecurityException
+ throws TorqueException
{
internalUser.updateIssueListAttributes(attributes);
}
public List getRoleNames(Module module)
- throws TorqueException
{
return null;
}
@@ -1223,14 +1170,15 @@
*/
public AccessControlList getACL()
{
- AccessControlList acl = (AccessControlList)ScarabUserManager.getMethodResult().get(this.getUserName(), ScarabUserManager.GET_ACL);
+ AccessControlList acl = (AccessControlList)ScarabUserManager.getMethodResult().get(this, ScarabUserManager.GET_ACL);
if (acl == null)
{
try
{
acl = TurbineSecurity.getACL(this);
- ScarabUserManager.getMethodResult().put(acl, this.getUserName(), ScarabUserManager.GET_ACL);
+ ScarabUserManager.getMethodResult().put(acl, this, ScarabUserManager.GET_ACL);
} catch (Exception e) {
+ Log.get().error(e);
}
}
return acl;
@@ -1239,7 +1187,7 @@
public boolean hasRoleInModule(Role role, Module module)
{
boolean bRdo = false;
- Boolean cached = (Boolean)ScarabUserManager.getMethodResult().get(this.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE, role.getName(), module.getModuleId());
+ Boolean cached = (Boolean)ScarabUserManager.getMethodResult().get(this, ScarabUserManager.HAS_ROLE_IN_MODULE, (Serializable)role, module);
if (cached == null)
{
AccessControlList acl = this.getACL();
@@ -1249,7 +1197,7 @@
allGroups = TurbineSecurity.getAllGroups();
Group group = allGroups.getGroup(module.getName());
bRdo = acl.hasRole(role, group);
- ScarabUserManager.getMethodResult().put(Boolean.valueOf(bRdo), this.getUserName(), ScarabUserManager.HAS_ROLE_IN_MODULE, role.getName(), module.getModuleId());
+ ScarabUserManager.getMethodResult().put(Boolean.valueOf(bRdo), this, ScarabUserManager.HAS_ROLE_IN_MODULE, (Serializable)role, module);
}
catch (DataBackendException e)
{
Modified: trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java&p2=trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java (original)
+++ trunk/src/java/org/tigris/scarab/om/ScarabUserManager.java 2007-06-10 07:06:11-0700
@@ -52,12 +52,9 @@
import org.apache.torque.util.Criteria;
import org.tigris.scarab.tools.localization.L10NKeySet;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.ScarabException;
import org.apache.fulcrum.security.TurbineSecurity;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.UnknownEntityException;
/**
* This class manages ScarabUser objects.
@@ -71,6 +68,12 @@
{
public final static String HAS_ROLE_IN_MODULE = "hasRoleInModule";
public final static String GET_ACL = "getACL";
+
+ public final static String SCARAB_USER_IMPL = "ScarabUserImpl";
+ public final static String ACL_HAS_PERMISSION = "aclHasPermission";
+
+ public final static String SCARAB_USER_MANAGER = "ScarabUserManager";
+ public final static String GET_INSTANCE = "getInstance";
/**
* Creates a new <code>ScarabUserManager</code> instance.
@@ -83,24 +86,14 @@
super();
setRegion(getClassName().replace('.', '_'));
}
-
+
/**
- * @return null if there is an UnknownEntityException
+ * Return an new of User based
*/
- protected ScarabUser getInstanceImpl()
+ public static ScarabUser getInstance()
+ throws TorqueException
{
- ScarabUser user = null;
- try
- {
- user = (ScarabUser) AnonymousUserUtil.getAnonymousUser();
- }
- catch (UnknownEntityException uee)
- {
- }
- catch (DataBackendException e)
- {
- }
- return user;
+ return new ScarabUserImpl();
}
/**
@@ -108,9 +101,15 @@
* unused.
*/
public static ScarabUser getInstance(final String username)
- throws TorqueException,ScarabException
+ throws TorqueException
{
- return getManager().getInstanceImpl(username);
+ ScarabUser user = (ScarabUser) getMethodResult().get(SCARAB_USER_MANAGER, GET_INSTANCE, username );
+ if (user == null)
+ {
+ user = getManager().getInstanceImpl(username);
+ getMethodResult().put(user, SCARAB_USER_MANAGER, GET_INSTANCE, username);
+ }
+ return user;
}
/**
@@ -142,22 +141,19 @@
* unused.
*/
protected ScarabUser getInstanceImpl(final String username)
- throws TorqueException,ScarabException
+ throws TorqueException
{
ScarabUser user = null;
if (username != null)
{
final Criteria crit = new Criteria();
crit.add(ScarabUserImplPeer.USERNAME, username);
+ crit.setSingleRecord(true);
final List users = ScarabUserImplPeer.doSelect(crit);
if (users.size() == 1)
{
user = (ScarabUser)users.get(0);
}
- else if (users.size() > 1)
- {
- throw new ScarabException(L10NKeySet.ExceptionDuplicateUsername);
- }
}
return user;
}
@@ -209,6 +205,61 @@
}
/**
+ * Return an instanceof the Anonymous User.
+ * If Anonymous user has been switched off
+ * or could not be loaded, this method
+ * returns a Turbine-anonymous user.
+ * @return
+ */
+ public static ScarabUser getAnonymousUser()
+ throws TorqueException
+ {
+ ScarabUser user = null;
+ if(anonymousAccessAllowed())
+ {
+ String username = getAnonymousUserName();
+ user = getInstance(username);
+ }
+ if (user == null)
+ {
+ try
+ {
+ user = (ScarabUser) TurbineSecurity.getAnonymousUser();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ return user;
+ }
+
+ /**
+ * Returns the username of the anonymous user
+ * Note: This method returns the anonymous username
+ * independent from wether anonymous access is allowed or not.
+ * @return
+ */
+ public static String getAnonymousUserName()
+ throws TorqueException
+ {
+ String username = GlobalParameterManager.getString("scarab.anonymous.username");
+ return username;
+ }
+
+ /**
+ * Returns true, when anonymous user access is explicitly allowed,.
+ * Otherwise returns false.
+ * @return
+ */
+ public static boolean anonymousAccessAllowed()
+ throws TorqueException
+ {
+ boolean allowed = GlobalParameterManager.getBoolean("scarab.anonymous.enable");
+ return allowed;
+ }
+
+ /**
* Reactivate a User instance, if and only if it exists AND
* it has previously been delted (instance state is DELETED).
* returns reacitvated ScarabUser instance, or null, if user
@@ -232,6 +283,7 @@
reactivatedUser.setLastName(su.getLastName());
reactivatedUser.save();
su = reactivatedUser;
+ getMethodResult().remove(SCARAB_USER_MANAGER, GET_INSTANCE, username );
}
else
{
Modified: trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java&p2=trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java (original)
+++ trunk/src/java/org/tigris/scarab/pipeline/AnonymousLoginValve.java 2007-06-10 07:06:11-0700
@@ -8,8 +8,9 @@
import org.apache.turbine.TurbineException;
import org.apache.turbine.ValveContext;
import org.apache.turbine.pipeline.AbstractValve;
+import org.tigris.scarab.actions.Login;
import org.tigris.scarab.om.ScarabUser;
-import org.tigris.scarab.util.AnonymousUserUtil;
+import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.util.Log;
/*
@@ -30,13 +31,9 @@
*/
public void initialize() throws Exception
{
- anonymousAccessAllowed = AnonymousUserUtil.anonymousAccessAllowed();
+ anonymousAccessAllowed = ScarabUserManager.anonymousAccessAllowed();
if (anonymousAccessAllowed) {
Log.get().info("anonymous Login enabled.");
- //nonAnonymousTargets.add("Index.vm");
- //nonAnonymousTargets.add("Logout.vm");
- //nonAnonymousTargets.add(conf.getProperty("template.login"));
- //nonAnonymousTargets.add(conf.getProperty("template.homepage"));
nonAnonymousTargets.add("Register.vm");
nonAnonymousTargets.add("ForgotPassword.vm");
}
@@ -58,7 +55,9 @@
// If there's no user, we will login as Anonymous.
ScarabUser user = (ScarabUser)data.getUserFromSession();
if (null == user || user.getUserId() == null || !user.hasLoggedIn())
- AnonymousUserUtil.anonymousLogin(data);
+ {
+ Login.anonymousLogin(data);
+ }
}
context.invokeNext(data);
}
Modified: trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java&p2=trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java (original)
+++ trunk/src/java/org/tigris/scarab/pipeline/NTLMLoginValve.java 2007-06-10 07:06:11-0700
@@ -11,16 +11,17 @@
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.UnknownEntityException;
import org.apache.log4j.Logger;
+import org.apache.torque.TorqueException;
import org.apache.turbine.RunData;
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineException;
import org.apache.turbine.ValveContext;
import org.apache.turbine.pipeline.AbstractValve;
import org.tigris.scarab.om.ScarabUser;
+import org.tigris.scarab.actions.Login;
import org.tigris.scarab.tools.ScarabLocalizationTool;
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.Log;
import jcifs.Config;
@@ -54,20 +55,27 @@
*/
public void invoke(RunData data, ValveContext context) throws IOException, TurbineException
{
- if (bNTLMActive &&
- (
- ((null == data.getUserFromSession() || data.getUserFromSession().getUserName().trim().length()==0) && null == data.getUser())
- || ((ScarabUser)data.getUserFromSession()).isUserAnonymous()
- )
- && ( !data.getAction().equals("Logout")
- && !data.getAction().equals("Login")
- && !data.getTarget().equals("Register.vm")
- && !data.getTarget().equals("ForgotPassword.vm")
- ))
+ try
{
- authenticateNtlm(data);
+ if (bNTLMActive &&
+ (
+ ((null == data.getUserFromSession() || data.getUserFromSession().getUserName().trim().length()==0) && null == data.getUser())
+ || ((ScarabUser)data.getUserFromSession()).isUserAnonymous()
+ )
+ && ( !data.getAction().equals("Logout")
+ && !data.getAction().equals("Login")
+ && !data.getTarget().equals("Register.vm")
+ && !data.getTarget().equals("ForgotPassword.vm")
+ ))
+ {
+ authenticateNtlm(data);
+ }
+ }
+ catch(TorqueException e)
+ {
+ throw new RuntimeException(e);
}
- context.invokeNext(data);
+ context.invokeNext(data);
}
/*
@@ -154,7 +162,7 @@
// Once the user has been authenticated, we'll try logging in Scarab.
String creds[] = {ntlm.getUsername(), domainController};
ScarabUser user = (ScarabUser)TurbineSecurity.getUser(creds[0]);
- AnonymousUserUtil.userLogin(data, user);
+ Login.simpleLogin(data, user);
data.setTarget("SelectModule.vm");
// Inform the user that s/he's been logged in using NTLM credentials!
Modified: trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java&p2=trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java (original)
+++ trunk/src/java/org/tigris/scarab/screens/ScarabDefault.java 2007-06-10 07:06:11-0700
@@ -48,11 +48,8 @@
// Turbine Stuff
-import org.apache.fulcrum.security.entity.User;
import org.apache.turbine.RunData;
import org.apache.turbine.TemplateContext;
-import org.tigris.scarab.om.ScarabUser;
-import org.tigris.scarab.util.AnonymousUserUtil;
/**
* This class adds a special link tool that should only be used
@@ -70,12 +67,6 @@
throws Exception
{
super.doBuildTemplate(data, context);
- //ScarabUser user = (ScarabUser)data.getUser();
- // only login as anonymous if currently no user is logged in
- //if(user == null || user.getUserId() == null || user.getUserId().longValue()==0)
- //{
- // AnonymousUserUtil.anonymousLogin(data);
- //}
context.put("modulelink", new ModuleSwitchingLink(data));
}
}
Modified: trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&p2=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java 2007-06-10 07:06:11-0700
@@ -127,7 +127,6 @@
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.tools.localization.L10NMessage;
import org.tigris.scarab.tools.localization.Localizable;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.Log;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.util.ScarabException;
@@ -3021,8 +3020,9 @@
*
*/
public boolean isAnonymousLoginAllowed()
+ throws TorqueException
{
- return AnonymousUserUtil.anonymousAccessAllowed();
+ return ScarabUserManager.anonymousAccessAllowed();
}
public Transition getTransition(Integer pk)
Modified: trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java&p2=trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/SecurityAdminTool.java 2007-06-10 07:06:11-0700
@@ -58,8 +58,6 @@
import org.apache.fulcrum.security.util.RoleSet;
import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.util.AccessControlList;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.UnknownEntityException;
import org.apache.torque.util.Criteria;
import org.apache.torque.TorqueException;
@@ -68,6 +66,8 @@
import org.tigris.scarab.om.ScarabModule;
import org.tigris.scarab.om.ScarabUser;
+import org.tigris.scarab.om.ScarabUserManager;
+
import org.tigris.scarab.om.PendingGroupUserRolePeer;
import org.tigris.scarab.om.PendingGroupUserRole;
import org.tigris.scarab.om.Module;
@@ -110,22 +110,7 @@
*/
public ScarabUser getUserByUsername(String username) throws Exception
{
- ScarabUser user = null;
-
- try
- {
- user = (ScarabUser)TurbineSecurity.getUser(username);
- }
- catch (UnknownEntityException uee)
- {
- // FIXME are we sure we want to do nothing with these excetpions?
- //if so, state it explicitly
- }
- catch (DataBackendException dbe)
- {
- }
-
- return user;
+ return ScarabUserManager.getInstance(username);
}
/** Returns a Permission object retrieved by specifying the name of the permission.
Removed: trunk/src/java/org/tigris/scarab/util/AnonymousUserUtil.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/AnonymousUserUtil.java?view=auto&rev=10449
Modified: trunk/src/java/org/tigris/scarab/util/ScarabLink.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/ScarabLink.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/util/ScarabLink.java&p2=trunk/src/java/org/tigris/scarab/util/ScarabLink.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/ScarabLink.java (original)
+++ trunk/src/java/org/tigris/scarab/util/ScarabLink.java 2007-06-10 07:06:11-0700
@@ -602,7 +602,7 @@
}
ScarabUser user = (ScarabUser)data.getUser();
allowed = currentModule != null
- && (user.hasLoggedIn() || AnonymousUserUtil.isUserAnonymous(user))
+ && (user.hasLoggedIn() || user.isUserAnonymous() )
&& user.hasPermission(perm, currentModule);
}
else
Modified: trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java?view=diff&rev=10450&p1=trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java&p2=trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java&r1=10449&r2=10450
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java (original)
+++ trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java 2007-06-10 07:06:11-0700
@@ -64,7 +64,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.fulcrum.localization.Localization;
-import org.apache.fulcrum.security.util.TurbineSecurityException;
import org.apache.torque.TorqueException;
import org.apache.turbine.Turbine;
import org.tigris.scarab.om.Activity;
@@ -96,7 +95,6 @@
import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.tools.localization.L10NKey;
import org.tigris.scarab.tools.localization.L10NKeySet;
-import org.tigris.scarab.util.AnonymousUserUtil;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.util.ScarabException;
@@ -307,7 +305,7 @@
ScarabUser user = findUser(userStr);
if (user == null && addUsers)
{
- user = (ScarabUser) AnonymousUserUtil.getAnonymousUser();
+ user = ScarabUserManager.getAnonymousUser();
user.setUserName(userStr);
user.setFirstName(userStr);
user.setLastName(userStr);
@@ -1034,8 +1032,8 @@
{
// Anonymous user. better than nothing.
try {
- activitySetOM.setCreatedBy(((ScarabUser)AnonymousUserUtil.getAnonymousUser()).getUserId());
- } catch (TurbineSecurityException e) {
+ activitySetOM.setCreatedBy(ScarabUserManager.getAnonymousUser().getUserId());
+ } catch (Exception e) {
LOG.error("doIssueEvent: Cannot get Anonymous user: e");
}
}
@@ -1258,8 +1256,6 @@
avalOM.setOptionId(newAttributeOptionOM.getOptionId());
avalOM.startActivitySet(activitySetOM);
avalOM.setAttribute(attributeOM);
- avalOM.setActivityDescription(
- activity.getDescription());
avalOM.save();
LOG.debug("-------------Saved Attribute Value-------------");
}
@@ -1344,7 +1340,6 @@
avalOM.startActivitySet(activitySetOM);
avalOM.setAttribute(attributeOM);
- avalOM.setActivityDescription(activity.getDescription());
if (activity.isNewActivity())
{
Modified: trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm?view=diff&rev=10450&p1=trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm&p2=trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm&r1=10449&r2=10450
==============================================================================
--- trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm (original)
+++ trunk/src/webapp/WEB-INF/templates/screens/RequestRoles.vm 2007-06-10 07:06:11-0700
@@ -20,14 +20,11 @@
<td bgcolor="#ffffff">
 
</td>
- #set ($anonymousrolename = $scarabG.getTurbineConfiguration().getString("scarab.anonymous.rolename"))
#foreach ($role in $securityAdmin.NonRootRoles)
- #if ($role.Name != $anonymousrolename)
<td bgcolor="#ffffff">
<b>$role.Name</b>
</td>
#end
- #end
<td bgcolor="#ffffff">
<i>$l10n.ClearRequest</i>
</td>
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.