Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
commit
5068404505
|
@ -305,8 +305,8 @@ namespace OpenSim
|
||||||
config.Set("region_info_source", "filesystem");
|
config.Set("region_info_source", "filesystem");
|
||||||
|
|
||||||
config.Set("gridmode", false);
|
config.Set("gridmode", false);
|
||||||
config.Set("physics", "basicphysics");
|
config.Set("physics", "OpenDynamicsEngine");
|
||||||
config.Set("meshing", "ZeroMesher");
|
config.Set("meshing", "Meshmerizer");
|
||||||
config.Set("physical_prim", true);
|
config.Set("physical_prim", true);
|
||||||
config.Set("see_into_this_sim_from_neighbor", true);
|
config.Set("see_into_this_sim_from_neighbor", true);
|
||||||
config.Set("serverside_object_permissions", false);
|
config.Set("serverside_object_permissions", false);
|
||||||
|
|
|
@ -125,10 +125,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
{
|
{
|
||||||
if (m_scenes.Count > 0)
|
if (m_scenes.Count > 0)
|
||||||
{
|
{
|
||||||
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
|
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
|
||||||
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
|
|
||||||
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (userInfo != null)
|
if (userInfo != null)
|
||||||
{
|
{
|
||||||
|
@ -153,11 +150,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
{
|
{
|
||||||
if (m_scenes.Count > 0)
|
if (m_scenes.Count > 0)
|
||||||
{
|
{
|
||||||
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
|
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
|
||||||
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
|
|
||||||
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
if (userInfo != null)
|
if (userInfo != null)
|
||||||
{
|
{
|
||||||
|
@ -182,11 +175,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
{
|
{
|
||||||
if (m_scenes.Count > 0)
|
if (m_scenes.Count > 0)
|
||||||
{
|
{
|
||||||
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
|
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
|
||||||
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
|
|
||||||
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
if (userInfo != null)
|
if (userInfo != null)
|
||||||
{
|
{
|
||||||
|
@ -214,11 +203,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
{
|
{
|
||||||
if (m_scenes.Count > 0)
|
if (m_scenes.Count > 0)
|
||||||
{
|
{
|
||||||
CachedUserInfo userInfo = GetUserInfo(firstName, lastName);
|
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
|
||||||
string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt);
|
|
||||||
if (userInfo.UserProfile.PasswordHash != md5PasswdHash)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
if (userInfo != null)
|
if (userInfo != null)
|
||||||
{
|
{
|
||||||
|
@ -251,7 +236,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
if (cmdparams.Length < 6)
|
if (cmdparams.Length < 6)
|
||||||
{
|
{
|
||||||
m_log.Error(
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,7 +267,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
if (cmdparams.Length < 5)
|
if (cmdparams.Length < 5)
|
||||||
{
|
{
|
||||||
m_log.Error(
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,8 +319,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="firstName"></param>
|
/// <param name="firstName"></param>
|
||||||
/// <param name="lastName"></param>
|
/// <param name="lastName"></param>
|
||||||
|
/// <param name="pass">User password</param>
|
||||||
/// <returns></returns>
|
/// <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);
|
CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName);
|
||||||
if (null == userInfo)
|
if (null == userInfo)
|
||||||
|
@ -345,6 +331,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
firstName, lastName);
|
firstName, lastName);
|
||||||
return null;
|
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;
|
return userInfo;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
m_log.InfoFormat("[REMOTE AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} for region {1}", userID, regionID);
|
||||||
|
|
||||||
bool isAuthorized = true;
|
bool isAuthorized = true;
|
||||||
|
message = String.Empty;
|
||||||
|
|
||||||
// get the scene this call is being made for
|
// get the scene this call is being made for
|
||||||
Scene scene = null;
|
Scene scene = null;
|
||||||
|
@ -140,7 +141,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
|
||||||
{
|
{
|
||||||
UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(new UUID(userID));
|
UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(new UUID(userID));
|
||||||
isAuthorized = IsAuthorizedForRegion(userID, profile.FirstName, profile.SurName,
|
isAuthorized = IsAuthorizedForRegion(userID, profile.FirstName, profile.SurName,
|
||||||
profile.Email, scene.RegionInfo.RegionName, regionID);
|
profile.Email, scene.RegionInfo.RegionName, regionID, out message);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -994,9 +994,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
// Loop it
|
// Loop it
|
||||||
if (m_frame == Int32.MaxValue)
|
if (m_frame == Int32.MaxValue)
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
otherMS = Environment.TickCount;
|
otherMS = Environment.TickCount;
|
||||||
// run through all entities looking for updates (slow)
|
// run through all entities looking for updates (slow)
|
||||||
|
@ -1017,7 +1015,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
m_sceneGraph.UpdateEntities();
|
m_sceneGraph.UpdateEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// run through entities that have scheduled themselves for
|
// run through entities that have scheduled themselves for
|
||||||
// updates looking for updates(faster)
|
// updates looking for updates(faster)
|
||||||
if (m_frame % m_update_entitiesquick == 0)
|
if (m_frame % m_update_entitiesquick == 0)
|
||||||
|
@ -3253,10 +3250,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
if (AuthorizationService != null)
|
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",
|
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);
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,8 @@ namespace OpenSim.Server.Handlers.Authorization
|
||||||
XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest));
|
XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest));
|
||||||
AuthorizationRequest Authorization = (AuthorizationRequest) xs.Deserialize(request);
|
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");
|
AuthorizationResponse result = new AuthorizationResponse(authorized, Authorization.ID + " has been authorized");
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,9 @@ namespace OpenSim.Services.AuthorizationService
|
||||||
m_log.Info("[AUTHORIZATION CONNECTOR]: Local Authorization service enabled");
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ namespace OpenSim.Services.Connectors
|
||||||
m_ResponseOnFailure = responseOnFailure;
|
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
|
// 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);
|
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)
|
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);
|
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;
|
return m_ResponseOnFailure;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message);
|
m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message);
|
||||||
|
message = response.Message;
|
||||||
|
|
||||||
return response.IsAuthorized;
|
return response.IsAuthorized;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace OpenSim.Services.Interfaces
|
||||||
// This method returns a simple true false indicating
|
// This method returns a simple true false indicating
|
||||||
// whether or not a user has access to the region
|
// 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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.
|
; 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
|
physical_prim = true
|
||||||
|
|
||||||
; Select a mesher here. ZeroMesher is safe and fast.
|
; Select a mesher here.
|
||||||
; 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
|
|
||||||
;
|
;
|
||||||
meshing = ZeroMesher
|
; Meshmerizer properly handles complex prims by using triangle meshes.
|
||||||
;meshing = Meshmerizer
|
; 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
|
; 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 = POS
|
||||||
;physics = OpenDynamicsEngine
|
|
||||||
;physics = modified_BulletX
|
;physics = modified_BulletX
|
||||||
|
|
||||||
; ##
|
; ##
|
||||||
|
|
Loading…
Reference in New Issue