Hi Scott, (The attached is a "Make Available Offline" from WDSc7. Same
as Export. I hope you can work with that)
If you need it some other way please explain further.
I did a source compare and the HEADERR4 sources are identical other
than my changes, The changes are in the cookie2ts procedure.
I don't know if you can get these screen shots. (and day = *blanks)
[]
Here is the second. and mon = *blanks
[]
On December 6, 2016 at 3:59 PM Scott Klement <sk@xxxxxxxxxxxxxxxx>
wrote:
David,
Thanks for the bug report. Would you mind downloading the latest
HTTPAPI from here:
[1]http://www.scottklement.com/httpapi/beta
Please make the changes to the HEADERR4 member in that download so
that
you are working with the current version, and send me a copy with
the
changes that you think should be made? That would make it much
easier
vs trying to make sure I understand the proper code change from an
English description.
Thanks!
On 12/4/2016 8:40 AM, David Lerman wrote:
Hi All,
I was able to solve this problem. The reason that HTTPAPI thought
the
cookie was expired is because it could not parse the expiration date
correctly and passed back *loval in the timestamp of the cookie
expire date.
The date I am getting is in the format of "MON, 12 DEC 2016 14:22:19
GMT".
This format matches everything I could find about standard cookie
expiration
dates.
The bug I am reporting is in the cookie2ts procedure of
LIBHTTP/QRPGLESRC(HEADERR4)
The cookie expire date VALUE = 'MON, 12 DEC 2016 14:22:19 GMT'
Bug reported: When STATE = 1 (day of month parse) and the trailing
blank is
processed the logic iterates without changing STATE = 2. The
iteration sets
the value of CH to the first character of the day of month which is
then
processed as STATE = 1 which finally sets STATE = 2. The problem is
we lose
the first character of the month.
This same scenario is presented for STATE = 2 processing on the
trailing
blank after month. We lose the first character of the year.
Both the STATE = 1 and STATE = 2 use the logic.
if ch = ' '
iter
endif
My suggested fixes are: (I made these changes and they worked for
me.)
*******************************************
* State 1: Reading the "day of month"
* (2-digit number)
*******************************************
c when state = 1
c if ch = ' ' (added "and day = *blanks")
c iter
c endif
C NUMBERS check ch Found
c if found = 0
c eval day = day + ch
c else
c eval state = 2
c endif
*******************************************
* State 2: Reading the month name
* (3-char abbreviation)
*******************************************
c when state = 2
c if ch = ' ' (added "and mon = *blanks")
c iter
c endif
C UPPER check ch Found
c if found = 0
c eval mon = mon + ch
c else
c eval state = 3
c endif
After making this change, the parse returned the timestamp
correctly. The
cookie is recognized as being current and is sent back to the server
on the
subsequent GET. Everything is working now.
I believe this fix, or something like it, should be incorporated
into the
project but I don't know who is handling the project maintenance. If
I can
be of help, please let me know.
Thank you very much for HTTPAPI and all the effort that Scott and
others
have put forth to make it do the great things it does.
-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of DAVID
lerman
Sent: Thursday, December 01, 2016 2:47 PM
To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
Subject: cookie=.AspNetCore.Identity.Application not sent (expired)
Hi, I have spent many hours searching the Archive for why the cookie
is not
being sent before resorting to this post. The only thing I found was
a
reference to "Temporary" cookies which would not be exported to the
cookie
file if specified. I think it was also implied it would not be sent
back up
on the next attempt to do something in the same session as well. It
was
mentioned in the HTTPAPI and Cookie support or the Cookie testers
wanted
thread.
The cookie has an expiration of "cookie attr expires=Sun, 11 Dec
2016
15:29:54 GMT" and the web side developers assure me that it is not
temporary.
See the log below.. thanks in advance for any suggestions. I will
investigate and test them immediately.
HTTPAPI Ver 1.32 released 2016-02-10
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R1M0
New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819.
ProtLoc=0
http_url_post(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry : 2
DNS resolver options: x'00000136'
DNS default domain: i5-microfirst.local
DNS server found: 192.168.200.254
DNS server found: 10.30.0.54
DNS server found: 10.0.0.11
Nagle's algorithm (TCP_NODELAY) disabled.
http_persist_post(): entered
http_persist_req(POST) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(POST): entered
cookie_read(): read cookies from /home/DLERMAN/mbvCookie.txt
There are 0 cookies in the cache
POST /api/Login HTTP/1.1
Host: 10.0.1.248
User-Agent: http-api/1.32
Content-Type: application/json
Content-Length: 54
senddoc(): entered
{"User":{"UserName":"password1","Password":"password1"}}
recvresp(): entered
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Kestrel
Set-Cookie:
.AspNetCore.Identity.Application=CfDJ8Labg42Ph2VBp9zbMgWAc60I67FKD-o
OamNZ_Zp
pLy0OccHNF1xxIsjDWxHjWuMu00oaqLAdIE3_z-20IqJxUXzlugoDkEyey5Ewcp6RFhi
MoHm-cxl
PZOTTL7SyIHkk9kiLImwYqHbBRmTgJva4VX4Y808LmTslQmT6N7EIfz-E2HZINBCKeKX
IyqjGpm4
VuRjdc0-Q9f876RJnINUY8TmdrlhbAYHYXhRrtzo4ZpbzkfGqLEY0cSTALFz9ziR0N_q
iK-EeHcl
4yXLsWeWvFpOz1lc9Idj5f8hil2qyQweNvSYSIb3_0-ORBHRxVrEsLKN8CQg8kjWD3kL
cIqUavA4
3XhXwkemKiny858dS3r8fEOGwz89vnkz585dCqOPCW0wb8Cim-nZf_SuE8L8FDtn_io_
al3A5xsY
1SMxxN0iO9DJsJtwUvOw8T9MM8-iJRTLmhuXOYYCBJ_KLVeRXPVgWXVnshjDOxoKx1yU
jA4iEsIb
NtM26Jmvw7tNou3Xctiauscu9CjW316cPG4-tu0DqJnA4Flxg0zZmNABjKHvw_Ho8qSq
aMKA9aKB
-rqPoXbZkDTWfYCiWMnow4j0EADkNdnIh3FrK65XkzlGDFe6aOCVqxhDmGJ89D535GBF
Y0tDRjck
_m9WRCFfT5J2WehSRGrpY46Qy0d1DJL9b8TflrLBHZp0jIdCMPTc2V8KM83WNNjSjIIE
fgg2Gwcb
9VcU; expires=Sun, 11 Dec 2016 15:29:54 GMT; path=/; httponly
Date: Thu, 01 Dec 2016 15:29:56 GMT
SetError() #13: HTTP/1.1 200 OK
recvresp(): end with 200
recvdoc parms: chunked 0
header_load_cookies() entered
cookie_read(): read cookies from /home/DLERMAN/mbvCookie.txt
cookie_parse() entered
cookie =
.AspNetCore.Identity.Application=CfDJ8Labg42Ph2VBp9zbMgWAc60I67FKD-o
OamNZ_Zp
pLy0OccHNF1xxIsjDWxHjWuMu00oaqLAdIE3_z-20IqJxUXzlugoDkEyey5Ewcp6RFhi
MoHm-cxl
PZOTTL7SyIHkk9kiLImwYqHbBRmTgJva4VX4Y808LmTslQmT6N7EIfz-E2HZINBCKeKX
IyqjGpm4
VuRjdc0-Q9f876RJnI
cookie attr
.AspNetCore.Identity.Application=CfDJ8Labg42Ph2VBp9zbMgWAc60I67FKD-o
OamNZ_Zp
pLy0OccHNF1xxIsjDWxHjWuMu00oaqLAdIE3_z-20IqJxUXzlugoDkEyey5Ewcp6RFhi
MoHm-cxl
PZOTTL7SyIHkk9kiLImwYqHbBRmTgJva4VX4Y808LmTslQmT6N7EIfz-E2HZINBCKeKX
IyqjGpm4
VuRjdc0-Q9f876RJ
cookie attr expires=Sun, 11 Dec 2016 15:29:54 GMT
cookie attr path=/
cookie attr httponly=
cookie_dump() entered.
cookie file is /home/DLERMAN/mbvCookie.txt
recvchunk(): entered
get_chunk_size(): entered
152
chunk size = 338
get_chunk_size returned 338
calling comm_blockread
{"Claims":{"[2]http://schemas.xmlsoap.org/ws/2005/05/identity/claims
/nameidenti
fier":"ff66fbdf-72cb-4d02-af49-408915e80970","[3]http://schemas.xmls
oap.org/ws/
2005/05/identity/claims/name":"Pitboss1","AspNet.Identity.SecuritySt
amp":"db
bac734-87e5-43b8-86cb-ea5f0e81e19e","[4]http://schemas.microsoft.com
/ws/2008/06
/identity/claims/role":"Pitboss"}}
comm_blockread returned 338
get_chunk_size(): entered
0
chunk size = 0
get_chunk_size returned 0
http_close(): entered
HTTPAPI Ver 1.32 released 2016-02-10
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R1M0
http_url_get(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry : 2
DNS resolver options: x'00000136'
DNS default domain: i5-microfirst.local
DNS server found: 192.168.200.254
DNS server found: 10.30.0.54
DNS server found: 10.0.0.11
Nagle's algorithm (TCP_NODELAY) disabled.
http_persist_get(): entered
http_persist_req(GET) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(GET): entered
cookie_read(): read cookies from /home/DLERMAN/mbvCookie.txt
There are 1 cookies in the cache
cookie=.AspNetCore.Identity.Application not sent (expired)
GET /api/Orders HTTP/1.1
Host: 10.0.1.248
User-Agent: http-api/1.32
recvresp(): entered
HTTP/1.1 401 Unauthorized
Transfer-Encoding: chunked
Content-Type: text/plain; charset=utf-8
Server: Kestrel
Date: Thu, 01 Dec 2016 15:30:01 GMT
SetError() #13: HTTP/1.1 401 Unauthorized
recvresp(): end with 401
recvdoc parms: chunked 0
SetError() #36: This page requires a user-id & password
http_close(): entered
--------------------------------------------------------------------
---
This is the FTPAPI mailing list. To unsubscribe, please go to:
[5]http://www.scottklement.com/mailman/listinfo/ftpapi
--------------------------------------------------------------------
---
--------------------------------------------------------------------
---
This is the FTPAPI mailing list. To unsubscribe, please go to:
[6]http://www.scottklement.com/mailman/listinfo/ftpapi
--------------------------------------------------------------------
---
References
1. http://www.scottklement.com/httpapi/beta
2. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidenti
3. http://schemas.xmlsoap.org/ws/
4. http://schemas.microsoft.com/ws/2008/06
5. http://www.scottklement.com/mailman/listinfo/ftpapi
6. http://www.scottklement.com/mailman/listinfo/ftpapi
Attachment:
HEADERR4.RPGLE
Description: Binary data
----------------------------------------------------------------------- This is the FTPAPI mailing list. To unsubscribe, please go to: http://www.scottklement.com/mailman/listinfo/ftpapi -----------------------------------------------------------------------