diff -r f5050f1da672 -r 04becd199f91 javamanager/javaregistry/legacy/server/src/javaregserverpolicycheck.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javaregistry/legacy/server/src/javaregserverpolicycheck.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,84 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: javaregserverpolicycheck implementation +* +*/ + + +#include "javaregserver.h" +#include "javaregserversession.h" +#include "javaregserverallowedid.h" +#include "logger.h" + +// ============================ MEMBER FUNCTIONS ============================== + +// --------------------------------------------------------------------------- +// CJavaRegServer::CustomSecurityCheckL +// --------------------------------------------------------------------------- +// +// using namespace Java::Utilities; +using namespace Java::Manager::Registry; + +CPolicyServer::TCustomResult CJavaRegServer::CustomSecurityCheckL( + const RMessage2& aMsg, + TInt& aAction, + TSecurityInfo& /*aMissing*/) +{ + JELOG(EJavaStorage, "CJavaRegServer::CustomSecurityCheckL()"); + switch (aMsg.Function()) + { + case EInitializeServerTransId: + case ESetEntry: + case ERemoveEntry: + case ERemoveEntryFromAll: + case EAllocateUids: + // Pass if the client is Java Installer OR OSGi VM OR SDK debug agent + if (aMsg.SecureId() == AllowedClientSecureId_Installer || + aMsg.SecureId() == AllowedClientSecureId_OsgiVm || + aMsg.SecureId() == AllowedClientSecureId_SDKDebugAgent) + { + return CPolicyServer::EPass; + } + // Pass if the client is using the legacy API AND + // it's either JavaHelperServer OR AppInstUi. + // Written as an 'elseif' only for better readability's sake. + else if (((CJavaRegServerSession*)(aMsg.Session()))->IsLegacy() && + (aMsg.SecureId() == AllowedClientSecureId_JavaHelperServer || + aMsg.SecureId() == AllowedClientSecureId_AppInstUi)) + { + return CPolicyServer::EPass; + } + else + { + aAction = CPolicyServer::EFailClient; + return CPolicyServer::EFail; + } + // falltrough not possible here + case ESetBackupState: + if (aMsg.SecureId() == AllowedClientSecureId_Backup) + { + return CPolicyServer::EPass; + } + else + { + aAction = CPolicyServer::EFailClient; + return CPolicyServer::EFail; + } + // falltrough not possible here + default: + aAction = CPolicyServer::EFailClient; + return CPolicyServer::EFail; + // falltrough not possible here + } +}