Backing out the patch to bug 83536.

I will reland this when 1.6a re-opens.
r+sr=jst@netscape.com
a=chofmann


git-svn-id: svn://10.0.0.236/trunk@146256 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
caillon%returnzero.com
2003-08-22 03:06:53 +00:00
parent 509ac04c4a
commit d55b44719f
66 changed files with 2991 additions and 918 deletions

View File

@@ -22,11 +22,12 @@
#include "nsMimeTypes.h"
#include "nsNetUtil.h"
#include "nsIScriptSecurityManager.h"
#include "nsIPrincipal.h"
#include "nsScriptSecurityManager.h"
#include "nsIAggregatePrincipal.h"
#include "nsIFileURL.h"
#include "nsIJAR.h"
static NS_DEFINE_CID(kScriptSecurityManagerCID, NS_SCRIPTSECURITYMANAGER_CID);
static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
//-----------------------------------------------------------------------------
@@ -423,28 +424,22 @@ nsJARChannel::GetOwner(nsISupports **result)
if (cert) {
// Get the codebase principal
nsCOMPtr<nsIScriptSecurityManager> secMan =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
do_GetService(kScriptSecurityManagerCID, &rv);
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsIPrincipal> codebase;
rv = secMan->GetCodebasePrincipal(mJarBaseURI,
getter_AddRefs(codebase));
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsIURI> codebaseURI;
codebase->GetURI(getter_AddRefs(codebaseURI));
nsCOMPtr<nsIURI> domainURI;
codebase->GetDomain(getter_AddRefs(domainURI));
// Join the certificate and the codebase
rv = cert->SetURI(codebaseURI);
nsCOMPtr<nsIAggregatePrincipal> agg = do_QueryInterface(cert, &rv);
if (NS_FAILED(rv)) return rv;
rv = cert->SetDomain(domainURI);
rv = agg->SetCodebase(codebase);
if (NS_FAILED(rv)) return rv;
mOwner = do_QueryInterface(cert, &rv);
mOwner = do_QueryInterface(agg, &rv);
if (NS_FAILED(rv)) return rv;
NS_ADDREF(*result = mOwner);

View File

@@ -46,7 +46,7 @@
#include "nsString.h"
#include "nsReadableUtils.h"
#include "nsXPIDLString.h"
#include "nsIScriptSecurityManager.h"
#include "nsScriptSecurityManager.h"
#include "nsIStringBundle.h"
#include "prefapi.h"
#include "prmem.h"
@@ -68,6 +68,8 @@ struct PrefCallbackData {
};
static NS_DEFINE_CID(kSecurityManagerCID, NS_SCRIPTSECURITYMANAGER_CID);
// Prototypes
extern PrefResult pref_UnlockPref(const char *key);
PR_STATIC_CALLBACK(PLDHashOperator)
@@ -895,7 +897,7 @@ nsresult nsPrefBranch::getValidatedPrefName(const char *aPrefName, const char **
{
nsresult rv;
nsCOMPtr<nsIScriptSecurityManager> secMan =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
do_GetService(kSecurityManagerCID, &rv);
PRBool enabled;
if (NS_FAILED(rv))

View File

@@ -45,6 +45,7 @@
#include "nsIServiceManager.h"
#include "nsIJSContextStack.h"
#include "nsIPrincipal.h"
#include "nsICodebasePrincipal.h"
#include "nsIScriptContext.h"
#include "nsIScriptGlobalObject.h"
#include "nsIScriptObjectPrincipal.h"
@@ -69,7 +70,9 @@ static nsresult getScriptCodebase(JSContext* cx, nsIURI* *result)
nsCOMPtr<nsIPrincipal> principal;
scriptObjectPrincipal->GetPrincipal(getter_AddRefs(principal));
if (principal) {
return principal->GetURI(result);
nsCOMPtr<nsICodebasePrincipal> codebasePrincipal = do_QueryInterface(principal);
if (codebasePrincipal)
return codebasePrincipal->GetURI(result);
}
}
}

View File

@@ -358,7 +358,7 @@ get_JSPrincipals_from_java_caller_impl(JNIEnv *pJNIEnv, JSContext *pJSContext, v
rv = ssm->GetCodebasePrincipal(codebaseURI, getter_AddRefs(principal));
if (NS_SUCCEEDED(rv)) {
JSPrincipals* jsprincipals;
principal->GetJsPrincipals(&jsprincipals);
principal->GetJSPrincipals(&jsprincipals);
return jsprincipals;
}
}
@@ -368,7 +368,7 @@ get_JSPrincipals_from_java_caller_impl(JNIEnv *pJNIEnv, JSContext *pJSContext, v
nsCOMPtr<nsIPrincipal> principal = do_QueryInterface(credentials);
if (principal) {
JSPrincipals* jsprincipals;
principal->GetJsPrincipals(&jsprincipals);
principal->GetJSPrincipals(&jsprincipals);
return jsprincipals;
}
}

View File

@@ -53,7 +53,12 @@
// For GetOrigin()
#include "nsIScriptSecurityManager.h"
#include "nsCOMPtr.h"
#include "nsJSPrincipals.h"
#include "nsSystemPrincipal.h"
#include "nsCodebasePrincipal.h"
#include "nsCertificatePrincipal.h"
#include "nsScriptSecurityManager.h"
#include "nsIScriptGlobalObject.h"
#include "nsIServiceManager.h"
#include "nsIScriptObjectPrincipal.h"
@@ -130,27 +135,39 @@ nsCSecurityContext::GetOrigin(char* buf, int buflen)
}
}
nsXPIDLCString origin;
m_pPrincipal->GetOrigin(getter_Copies(origin));
PRInt32 originlen = origin.Length();
if (origin.IsEmpty() || originlen > buflen - 1) {
nsCOMPtr<nsICodebasePrincipal> codebase = do_QueryInterface(m_pPrincipal);
if (!codebase)
return NS_ERROR_FAILURE;
char* origin=nsnull;
codebase->GetOrigin(&origin);
if (origin) {
PRInt32 originlen = (PRInt32) strlen(origin);
if (!buf || buflen<=originlen) {
if (origin) {
nsCRT::free(origin);
}
return NS_ERROR_FAILURE;
}
// Copy the string into to user supplied buffer. Is there a better
// way to do this?
memcpy(buf,origin,originlen);
buf[originlen]=nsnull; // Gotta terminate it.
nsCRT::free(origin);
} else {
*buf = nsnull;
}
// Copy the string into to user supplied buffer. Is there a better
// way to do this?
memcpy(buf, origin, originlen);
buf[originlen] = nsnull; // Gotta terminate it.
return NS_OK;
}
NS_METHOD
nsCSecurityContext::GetCertificateID(char* buf, int buflen)
{
nsCOMPtr<nsIPrincipal> principal;
nsCOMPtr<nsIPrincipal> principal = NULL;
// Get the Script Security Manager.
@@ -159,22 +176,28 @@ nsCSecurityContext::GetCertificateID(char* buf, int buflen)
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
if (NS_FAILED(rv) || !secMan) return NS_ERROR_FAILURE;
secMan->GetSubjectPrincipal(getter_AddRefs(principal));
if (!principal) {
nsCOMPtr<nsICertificatePrincipal> cprincipal = do_QueryInterface(principal);
if (!cprincipal)
return NS_ERROR_FAILURE;
char* certificate = nsnull;
cprincipal->GetCertificateID(&certificate);
if (certificate) {
PRInt32 certlen = (PRInt32) strlen(certificate);
if( buflen<=certlen ) {
nsCRT::free(certificate);
return NS_ERROR_FAILURE;
}
memcpy(buf,certificate,certlen);
buf[certlen]=nsnull;
nsCRT::free(certificate);
} else {
*buf = nsnull;
}
nsXPIDLCString certificate;
principal->GetCertificateID(getter_Copies(certificate));
PRInt32 certlen = certificate.Length();
if (buflen <= certlen) {
return NS_ERROR_FAILURE;
}
memcpy(buf, certificate.get(), certlen);
buf[certlen] = nsnull;
return NS_OK;
}

View File

@@ -68,10 +68,14 @@
#include "nspr.h"
#include "plstr.h"
#include "nsCOMPtr.h"
#include "nsIPrincipal.h"
//#include "nsJSPrincipals.h"
//#include "nsSystemPrincipal.h"
//#include "nsCodebasePrincipal.h"
#include "nsCertificatePrincipal.h"
#include "nsIScriptSecurityManager.h"
#include "nsISignatureVerifier.h"
//#include "nsScriptSecurityManager.h"
extern "C" int XP_PROGRESS_STARTING_JAVA;
extern "C" int XP_PROGRESS_STARTING_JAVA_DONE;
@@ -967,8 +971,15 @@ nsJVMManager::IsAllPermissionGranted(
rv = secMan->GetCertificatePrincipal(lastFP, &pIPrincipal);
if (NS_FAILED(rv)) return PR_FALSE;
// Get the nsICertificatePrincipal interface so that we can set the
// common name. The common name is a user meaningful string.
nsCOMPtr<nsICertificatePrincipal> pICertificate = do_QueryInterface(pIPrincipal, &rv);
if (NS_FAILED(rv) || !pICertificate) return PR_FALSE;
// Set the common name.
rv = pIPrincipal->SetCommonName(lastCN);
rv = pICertificate->SetCommonName(lastCN);
PRInt16 ret;