diff options
author | Marc Laukien <marc@zeroc.com> | 2004-08-18 14:11:37 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-08-18 14:11:37 +0000 |
commit | bce4572864ed9565dde5f1f48c740057dcf94559 (patch) | |
tree | c9fb1765a513af775368fca8ccdc9c0ed11f4068 /cpp/src | |
parent | *** empty log message *** (diff) | |
download | ice-bce4572864ed9565dde5f1f48c740057dcf94559.tar.bz2 ice-bce4572864ed9565dde5f1f48c740057dcf94559.tar.xz ice-bce4572864ed9565dde5f1f48c740057dcf94559.zip |
cryptpermissions
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Glacier/StarterI.cpp | 6 | ||||
-rw-r--r-- | cpp/src/Glacier/StarterI.h | 1 | ||||
-rwxr-xr-x | cpp/src/Glacier2/CryptPermissionsVerifierI.cpp | 48 | ||||
-rwxr-xr-x | cpp/src/Glacier2/CryptPermissionsVerifierI.h | 34 | ||||
-rw-r--r-- | cpp/src/Glacier2/SessionRouterI.cpp | 2 | ||||
-rwxr-xr-x | cpp/src/Glacier2/glacier2.dsp | 125 | ||||
-rwxr-xr-x | cpp/src/Glacier2/glacier2router.dsp | 12 |
7 files changed, 218 insertions, 10 deletions
diff --git a/cpp/src/Glacier/StarterI.cpp b/cpp/src/Glacier/StarterI.cpp index 55d46c6cab2..32ebf9e20d8 100644 --- a/cpp/src/Glacier/StarterI.cpp +++ b/cpp/src/Glacier/StarterI.cpp @@ -785,9 +785,3 @@ Glacier::CryptPasswordVerifierI::checkPermissions( #endif return p->second == buff; } - -void -Glacier::CryptPasswordVerifierI::destroy(const Current&) -{ - // Nothing to do. -} diff --git a/cpp/src/Glacier/StarterI.h b/cpp/src/Glacier/StarterI.h index 4095b460c55..9a861bc657f 100644 --- a/cpp/src/Glacier/StarterI.h +++ b/cpp/src/Glacier/StarterI.h @@ -57,7 +57,6 @@ public: CryptPasswordVerifierI(const std::map<std::string, std::string>&); virtual bool checkPermissions(const std::string&, const std::string&, std::string&, const Ice::Current&) const; - virtual void destroy(const Ice::Current&); private: diff --git a/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp new file mode 100755 index 00000000000..c90d65b69ec --- /dev/null +++ b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp @@ -0,0 +1,48 @@ +// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Glacier2/CryptPermissionsVerifierI.h>
+#include <openssl/des.h>
+
+using namespace std;
+using namespace Ice;
+using namespace Glacier2;
+
+Glacier2::CryptPermissionsVerifierI::CryptPermissionsVerifierI(const map<string, string>& passwords) :
+ _passwords(passwords)
+{
+}
+
+bool
+Glacier2::CryptPermissionsVerifierI::checkPermissions(
+ const string& userId, const string& password, string&, const Current&) const
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ map<string, string>::const_iterator p = _passwords.find(userId);
+
+ if(p == _passwords.end())
+ {
+ return false;
+ }
+
+ if(p->second.size() != 13) // Crypt passwords are 13 characters long.
+ {
+ return false;
+ }
+
+ char buff[14];
+ string salt = p->second.substr(0, 2);
+#if OPENSSL_VERSION_NUMBER >= 0x0090700fL
+ DES_fcrypt(password.c_str(), salt.c_str(), buff);
+#else
+ des_fcrypt(password.c_str(), salt.c_str(), buff);
+#endif
+ return p->second == buff;
+}
diff --git a/cpp/src/Glacier2/CryptPermissionsVerifierI.h b/cpp/src/Glacier2/CryptPermissionsVerifierI.h new file mode 100755 index 00000000000..e75ad9a3f21 --- /dev/null +++ b/cpp/src/Glacier2/CryptPermissionsVerifierI.h @@ -0,0 +1,34 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef GLACIER2_ROUTER_I_H +#define GLACIER2_ROUTER_I_H + +#include <Ice/Ice.h> +#include <Glacier2/PermissionsVerifier.h> + +namespace Glacier2 +{ + +class CryptPermissionsVerifierI : public PermissionsVerifier, public IceUtil::Mutex +{ +public: + + CryptPermissionsVerifierI(const std::map<std::string, std::string>&); + + virtual bool checkPermissions(const std::string&, const std::string&, std::string&, const Ice::Current&) const; + +private: + + const std::map<std::string, std::string> _passwords; +}; + +} + +#endif diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index df31bdd25b8..0342c602dc2 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -101,7 +101,7 @@ Glacier2::SessionRouterI::addProxy(const ObjectPrx& proxy, const Current& curren } void -Glacier2::SessionRouterI::createSession(const std::string&, const std::string&, const Current& current) +Glacier2::SessionRouterI::createSession(const std::string& userId, const std::string& password, const Current& current) { IceUtil::Monitor<IceUtil::Mutex>::Lock lock(*this); diff --git a/cpp/src/Glacier2/glacier2.dsp b/cpp/src/Glacier2/glacier2.dsp index 72f81254f2f..d39cf836543 100755 --- a/cpp/src/Glacier2/glacier2.dsp +++ b/cpp/src/Glacier2/glacier2.dsp @@ -106,6 +106,10 @@ PostBuild_Cmds=copy $(OutDir)\glacier2d.lib ..\..\lib copy $(OutDir)\glacier215d # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
+SOURCE=.\PermissionsVerifier.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Router.cpp
# End Source File
# End Group
@@ -114,14 +118,102 @@ SOURCE=.\Router.cpp # PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
+SOURCE=..\..\include\Glacier2\PermissionsVerifier.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\Glacier2\PermissionsVerifierF.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\Glacier2\Router.h
# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\Glacier2\RouterF.h
+# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
+SOURCE=..\..\slice\Glacier2\PermissionsVerifier.ice
+
+!IF "$(CFG)" == "Glacier2 - Win32 Release"
+
+USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\PermissionsVerifier.ice
+
+BuildCmds= \
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
+ move PermissionsVerifier.h ..\..\include\Glacier2 \
+
+
+"..\..\include\Glacier2\PermissionsVerifier.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"PermissionsVerifier.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Glacier2 - Win32 Debug"
+
+USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\PermissionsVerifier.ice
+
+BuildCmds= \
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
+ move PermissionsVerifier.h ..\..\include\Glacier2 \
+
+
+"..\..\include\Glacier2\PermissionsVerifier.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"PermissionsVerifier.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\slice\Glacier2\PermissionsVerifierF.ice
+
+!IF "$(CFG)" == "Glacier2 - Win32 Release"
+
+USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\PermissionsVerifierF.ice
+
+"..\..\include\Glacier2\PermissionsVerifierF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
+ move PermissionsVerifierF.h ..\..\include\Glacier2
+ del PermissionsVerifierF.cpp
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Glacier2 - Win32 Debug"
+
+USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\PermissionsVerifierF.ice
+
+"..\..\include\Glacier2\PermissionsVerifierF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
+ move PermissionsVerifierF.h ..\..\include\Glacier2
+ del PermissionsVerifierF.cpp
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
SOURCE=..\..\slice\Glacier2\Router.ice
!IF "$(CFG)" == "Glacier2 - Win32 Release"
@@ -163,6 +255,39 @@ BuildCmds= \ !ENDIF
# End Source File
+# Begin Source File
+
+SOURCE=..\..\slice\Glacier2\RouterF.ice
+
+!IF "$(CFG)" == "Glacier2 - Win32 Release"
+
+USERDEP__ROUTER="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\RouterF.ice
+
+"..\..\include\Glacier2\RouterF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
+ move RouterF.h ..\..\include\Glacier2
+ del RouterF.cpp
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Glacier2 - Win32 Debug"
+
+USERDEP__ROUTER="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
+# Begin Custom Build
+InputPath=..\..\slice\Glacier2\RouterF.ice
+
+"..\..\include\Glacier2\RouterF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
+ move RouterF.h ..\..\include\Glacier2
+ del RouterF.cpp
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
# End Group
# End Target
# End Project
diff --git a/cpp/src/Glacier2/glacier2router.dsp b/cpp/src/Glacier2/glacier2router.dsp index e582b5da9fd..64c23627dbc 100755 --- a/cpp/src/Glacier2/glacier2router.dsp +++ b/cpp/src/Glacier2/glacier2router.dsp @@ -51,7 +51,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 libeay32.lib ssleay32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 libeay32.lib /nologo /subsystem:console /machine:I386
# SUBTRACT LINK32 /nodefaultlib
# Begin Special Build Tool
OutDir=.\Release
@@ -83,7 +83,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 libeay32.lib ssleay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# SUBTRACT LINK32 /nodefaultlib
# Begin Special Build Tool
OutDir=.\Debug
@@ -111,6 +111,10 @@ SOURCE=.\ClientBlobject.cpp # End Source File
# Begin Source File
+SOURCE=.\CryptPermissionsVerifierI.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Glacier2Router.cpp
# End Source File
# Begin Source File
@@ -143,6 +147,10 @@ SOURCE=.\ClientBlobject.h # End Source File
# Begin Source File
+SOURCE=.\CryptPermissionsVerifierI.h
+# End Source File
+# Begin Source File
+
SOURCE=.\RequestQueue.h
# End Source File
# Begin Source File
|