Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim

remotes/origin/0.6.7-post-fixes
Melanie 2009-09-16 17:57:31 +01:00
commit 5068404505
10 changed files with 49 additions and 46 deletions

View File

@ -305,8 +305,8 @@ namespace OpenSim
config.Set("region_info_source", "filesystem");
config.Set("gridmode", false);
config.Set("physics", "basicphysics");
config.Set("meshing", "ZeroMesher");
config.Set("physics", "OpenDynamicsEngine");
config.Set("meshing", "Meshmerizer");
config.Set("physical_prim", true);
config.Set("see_into_this_sim_from_neighbor", true);
config.Set("serverside_object_permissions", false);

View File

@ -125,10 +125,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
if (m_scenes.Count > 0)
{
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
return false;
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
{
@ -153,11 +150,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
if (m_scenes.Count > 0)
{
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
return false;
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
{
@ -182,11 +175,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
if (m_scenes.Count > 0)
{
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
return false;
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
{
@ -214,11 +203,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
if (m_scenes.Count > 0)
{
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
return false;
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
{
@ -251,7 +236,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (cmdparams.Length < 6)
{
m_log.Error(
"[INVENTORY ARCHIVER]: usage is load iar <first name> <last name> <inventory path> <password> [<load file path>]");
"[INVENTORY ARCHIVER]: usage is load iar <first name> <last name> <inventory path> <user password> [<load file path>]");
return;
}
@ -282,7 +267,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (cmdparams.Length < 5)
{
m_log.Error(
"[INVENTORY ARCHIVER]: usage is save iar <first name> <last name> <inventory path> <password> [<save file path>]");
"[INVENTORY ARCHIVER]: usage is save iar <first name> <last name> <inventory path> <user password> [<save file path>]");
return;
}
@ -334,8 +319,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// </summary>
/// <param name="firstName"></param>
/// <param name="lastName"></param>
/// <param name="pass">User password</param>
/// <returns></returns>
protected CachedUserInfo GetUserInfo(string firstName, string lastName)
protected CachedUserInfo GetUserInfo(string firstName, string lastName, string pass)
{
CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName);
if (null == userInfo)
@ -345,6 +331,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
firstName, lastName);
return null;
}
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
{
m_log.ErrorFormat(
"[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.",
firstName, lastName);
return null;
}
return userInfo;
}

View File

@ -132,9 +132,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
}
public bool IsAuthorizedForRegion(string userID, string regionID)
public bool IsAuthorizedForRegion(string userID, string regionID, out string message)
{
return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID);
return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID, out message);
}
}

View File

@ -117,11 +117,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
}
public bool IsAuthorizedForRegion(string userID, string regionID)
public bool IsAuthorizedForRegion(string userID, string regionID, out string message)
{
m_log.InfoFormat("[REMOTE AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} for region {1}", userID, regionID);
bool isAuthorized = true;
message = String.Empty;
// get the scene this call is being made for
Scene scene = null;
@ -140,7 +141,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
{
UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(new UUID(userID));
isAuthorized = IsAuthorizedForRegion(userID, profile.FirstName, profile.SurName,
profile.Email, scene.RegionInfo.RegionName, regionID);
profile.Email, scene.RegionInfo.RegionName, regionID, out message);
}
else
{

View File

@ -994,9 +994,7 @@ namespace OpenSim.Region.Framework.Scenes
// Loop it
if (m_frame == Int32.MaxValue)
m_frame = 0;
m_frame = 0;
otherMS = Environment.TickCount;
// run through all entities looking for updates (slow)
@ -1017,7 +1015,6 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGraph.UpdateEntities();
}
// run through entities that have scheduled themselves for
// updates looking for updates(faster)
if (m_frame % m_update_entitiesquick == 0)
@ -3253,10 +3250,11 @@ namespace OpenSim.Region.Framework.Scenes
if (AuthorizationService != null)
{
if (!AuthorizationService.IsAuthorizedForRegion(agent.AgentID.ToString(), RegionInfo.RegionID.ToString()))
if (!AuthorizationService.IsAuthorizedForRegion(agent.AgentID.ToString(), RegionInfo.RegionID.ToString(),out reason))
{
m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region",
agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
//reason = String.Format("You are not currently on the access list for {0}",RegionInfo.RegionName);
return false;
}
}

View File

@ -60,7 +60,8 @@ namespace OpenSim.Server.Handlers.Authorization
XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest));
AuthorizationRequest Authorization = (AuthorizationRequest) xs.Deserialize(request);
bool authorized = m_AuthorizationService.IsAuthorizedForRegion(Authorization.ID, Authorization.RegionID);
string message = String.Empty;
bool authorized = m_AuthorizationService.IsAuthorizedForRegion(Authorization.ID, Authorization.RegionID,out message);
AuthorizationResponse result = new AuthorizationResponse(authorized, Authorization.ID + " has been authorized");

View File

@ -48,8 +48,9 @@ namespace OpenSim.Services.AuthorizationService
m_log.Info("[AUTHORIZATION CONNECTOR]: Local Authorization service enabled");
}
public bool IsAuthorizedForRegion(string userID, string regionID)
public bool IsAuthorizedForRegion(string userID, string regionID, out string message)
{
message = "Authorized";
return true;
}
}

View File

@ -88,7 +88,7 @@ namespace OpenSim.Services.Connectors
m_ResponseOnFailure = responseOnFailure;
}
public bool IsAuthorizedForRegion(string userID, string firstname, string surname, string email, string regionName, string regionID)
public bool IsAuthorizedForRegion(string userID, string firstname, string surname, string email, string regionName, string regionID, out string message)
{
// do a remote call to the authorization server specified in the AuthorizationServerURI
m_log.InfoFormat("[AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} at remote server {1}", userID, m_ServerURI);
@ -105,10 +105,12 @@ namespace OpenSim.Services.Connectors
catch (Exception e)
{
m_log.WarnFormat("[AUTHORIZATION CONNECTOR]: Unable to send authorize {0} for region {1} error thrown during comms with remote server. Reason: {2}", userID, regionID, e.Message);
message="";
return m_ResponseOnFailure;
}
m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message);
message = response.Message;
return response.IsAuthorized;
}

View File

@ -40,7 +40,7 @@ namespace OpenSim.Services.Interfaces
// This method returns a simple true false indicating
// whether or not a user has access to the region
//
bool IsAuthorizedForRegion(string userID, string regionID);
bool IsAuthorizedForRegion(string userID, string regionID, out string message);
}

View File

@ -134,19 +134,24 @@
; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true.
physical_prim = true
; Select a mesher here. ZeroMesher is safe and fast.
; ZeroMesher also means that the physics engine models the physics of prims
; sticking to the basic shapes the engine does support. Usually this is only a box.
; Meshmerizer gives a better handling of complex prims by using triangle meshes.
; Note that only ODE physics currently deals with meshed prims in a satisfactory way
; Select a mesher here.
;
meshing = ZeroMesher
;meshing = Meshmerizer
; Meshmerizer properly handles complex prims by using triangle meshes.
; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
;
; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
; Usually this is only a box
meshing = Meshmerizer
;meshing = ZeroMesher
; Choose one of the physics engines below
physics = basicphysics
; OpenDynamicsEngine is by some distance the most developed physics engine
; basicphysics effectively does not model physics at all, making all objects phantom
physics = OpenDynamicsEngine
;physics = basicphysics
;physics = POS
;physics = OpenDynamicsEngine
;physics = modified_BulletX
; ##