16#if __DCL_HAVE_THIS_FILE__
33 unsigned int r = (
unsigned int)(n % 62);
36 else if (10 <=
r &&
r <= 35)
37 sz[i] =
r - 10 + L
'A';
39 sz[i] =
r - 36 + L
'a';
44 String str(&sz[i], 20 - i);
66 StringBuilder strRemoteAddr =
__ctx.remoteAddr();
67 strRemoteAddr += L
":" + String::valueOf(
__ctx.remotePort());
68 String str = strRemoteAddr.toString()
73 md.
update(str.data(), str.length() *
sizeof(
wchar_t));
79 StringBuilder strSessionID =
toString(ui64[0]);
91 __ctx.addHeader(cookie);
94 "INSERT INTO DCL_SESSION(SESSION_ID, USER_ID, REMOTE_ADDR, LAST_ACCESS)"
95 "\n VALUES(:SESSION_ID, :USER_ID, :REMOTE_ADDR, CURRENT_TIMESTAMP)"
97 q.
params()[0].setValue(strSessionID);
98 q.
params()[1].setValue(nUserID);
99 q.
params()[2].setValue(strRemoteAddr);
113 ListedStringToStringMap::ConstIterator it =
115 if (it ==
__ctx.__cookieMap.end()) {
120 String strSessionID = (*it).value;
123 "SELECT S.USER_ID, U.USER_NAME, U.ROLE_ID, R.ROLE_NAME"
124 "\n FROM DCL_SESSION AS S"
125 "\n INNER JOIN DCL_USER AS U ON (S.USER_ID = U.USER_ID)"
126 "\n INNER JOIN DCL_ROLE AS R ON (U.ROLE_ID = R.ROLE_ID)"
127 "\n WHERE SESSION_ID = \'" + strSessionID + L
'\'';
141 if (!q.
fields()[1].isNull())
148 "UPDATE DCL_SESSION "
149 "\n SET LAST_ACCESS = CURRENT_TIMESTAMP "
153 "UPDATE DCL_USER SET"
154 "\n LAST_USE = CURRENT_TIMESTAMP"
155 "\n WHERE USER_ID = " + String::valueOf(
__nUserID)
169 "SELECT USER_ID, PASSWORD FROM DCL_USER "
170 " WHERE SIGN_ID = :SIGN_ID"
182 String password = q.
fields()[1].asString();
183 if (!(password.isEmpty() && strPassword.isEmpty())) {
185 if (strPassword != password)
189 String strUserID = q.
fields()[0].asString();
192 "UPDATE DCL_USER SET"
193 "\n LAST_SIGNIN = CURRENT_TIMESTAMP, LAST_USE = CURRENT_TIMESTAMP"
194 "\n WHERE USER_ID = " + strUserID
198 "UPDATE DCL_SESSION SET USER_ID = " + strUserID + L
""
218 "UPDATE DCL_SESSION SET USER_ID = " + String::valueOf(
GUEST_USER_ID) + L
""
228 "\n FROM DCL_USER_MEMBER"
229 "\n WHERE USER_ID = " + String::valueOf(nServiceUserID) + L
""
230 "\n AND MEMBER_ID = " + String::valueOf(
__nUserID)
#define __DCL_TRACE1(fmt, arg1)
#define __DCL_ASSERT(expr)
static DateTime getCurrentLocalTime()
void update(const void *_p, size_t _n)
void final(byte_t digest[16])
_CONST SQLField & at(size_t _index) const
SQLParam & byName(const wchar_t *_name) _CONST __DCL_THROWS1(InvalidIndexException *)
void prepare(const String &_sql) __DCL_THROWS1(SQLException *)
_CONST SQLParams & params() _CONST
_CONST SQLFields & fields() _CONST
void execute() __DCL_THROWS1(SQLException *)
void fetch() __DCL_THROWS1(SQLException *)
bool getMemberRole(int nServiceUserID)
Session(HttpServletContextEx &ctx, SQLQuery &q, int nServiceUserID)
HttpServletContextEx & __ctx
bool login(const String &strLoginID, const String &strPassword)
static const wchar_t * SESSION_COOKIE_NAME
String create(SQLQuery &q, int nUserID)
static String toString(uint64_t n)