summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-08-18 14:11:37 +0000
committerMarc Laukien <marc@zeroc.com>2004-08-18 14:11:37 +0000
commitbce4572864ed9565dde5f1f48c740057dcf94559 (patch)
treec9fb1765a513af775368fca8ccdc9c0ed11f4068 /cpp/src
parent*** empty log message *** (diff)
downloadice-bce4572864ed9565dde5f1f48c740057dcf94559.tar.bz2
ice-bce4572864ed9565dde5f1f48c740057dcf94559.tar.xz
ice-bce4572864ed9565dde5f1f48c740057dcf94559.zip
cryptpermissions
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier/StarterI.cpp6
-rw-r--r--cpp/src/Glacier/StarterI.h1
-rwxr-xr-xcpp/src/Glacier2/CryptPermissionsVerifierI.cpp48
-rwxr-xr-xcpp/src/Glacier2/CryptPermissionsVerifierI.h34
-rw-r--r--cpp/src/Glacier2/SessionRouterI.cpp2
-rwxr-xr-xcpp/src/Glacier2/glacier2.dsp125
-rwxr-xr-xcpp/src/Glacier2/glacier2router.dsp12
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