Commit Graph

81 Commits

Author SHA1 Message Date
Colin Adams
e1d1d52260 Issue #143 2014-11-17 16:20:28 +00:00
67641da44d Improved the uploading of file in regard to temporary filename.
Avoid to overwrite the same file for concurrent requests uploading the same filename.
2014-06-11 16:52:22 +02:00
Jocelyn Fiat
0b11663da4 Merge pull request #128 from jocelyn/response_header
Extracting HTTP_HEADER_BUILDER from HTTP_HEADER
Improving wsf session usage
Various unicode related improvement for router and error library.
2014-05-14 10:06:58 +02:00
bb11c24681 check that cookies data is valid string 8 to follow assertions. 2014-05-14 09:53:04 +02:00
322fd80f40 Be sure to reset `is_https' to False, in case the wsf_request object is reused by the implementation. 2014-04-22 10:18:16 +02:00
7168941495 is_https should not rely on REQUEST_SCHEME which may still be "http" for SSL connection. 2014-04-22 10:09:03 +02:00
161607cf8a better comments. 2014-04-22 10:01:27 +02:00
d45cd032a7 Corrected support of https request in `server_url' (and callers).
Added query `is_https' to indicate if the request is done via a https connection or not.
2014-04-22 09:59:18 +02:00
46920fb991 Do not try to read more bytes from input than provided Content-Length value. 2014-04-09 12:27:31 +02:00
c68f6a30e6 Fixed and improved {WSF_REQUEST}.read_input_data_into_file.
Now use the content length to get exactly what is expected from the request.
Added check assertion
2013-12-03 10:46:22 +01:00
cf01756c1c Using the new Content Negotiation library to implement WSF_REQUEST.is_content_type_accepted 2013-10-18 20:46:08 +02:00
9499601daf Fixing handling of query parameter without value
Issue#70 https://github.com/EiffelWebFramework/EWF/issues/70
2013-09-09 15:51:20 +02:00
51730e0877 Merge branch 'handler' of github.com:colin-adams/EWF into colin-adams-handler 2013-08-20 13:17:01 +02:00
Colin Adams
69da6c6d06 Fixes as picked up by code review 2013-08-07 11:03:22 +01:00
Colin Adams
0a9d208529 New routines added to WSF_REQUEST to support ploicy-driven framework 2013-08-06 13:51:43 +01:00
5753af3e43 Cosmetic
(removed commented line and fixed bad indentation)
2013-08-05 10:20:41 +02:00
Berend de Boer
4b87a00637 Remove invariant violation. 2013-08-03 20:09:16 +12:00
Colin Adams
e6371c7adc Merge branch 'master' into handler
pull from upstream
2013-07-08 10:17:44 +01:00
23ed157a75 Better use append rather than copy here. 2013-06-18 15:12:53 +02:00
cc4ef1a575 Better support for unicode path and values.
Added WSF_REQUEST.percent_encoded_path_info: READABLE_STRING_8
    to keep url encoded path info, as it is useful for specific component

The router is now using WSF_REQUEST.percent_encoded_path_info
    since URI_TEMPLATE are handling URI (and not IRI)
    this fixes an issue with unicode path parameters.

This should not break existing code, and this fixes various unicode related issues related
   to PATH parameter and path info
   but also any component using file names.

(required EiffelStudio >= 7.2)
2013-06-12 18:03:11 +02:00
eab8df7e10 Added WSF_REQUEST.read_input_data_into_file (FILE) 2013-05-28 14:42:11 +02:00
430b34df4f removed unused local variable 2013-05-15 10:54:07 +02:00
1a518e4d27 use EWF_tmp- prefix for temp uploaded file name. 2013-05-15 10:52:32 +02:00
7d5d55462f Added a way to customize the place to store temporary uploaded files 2013-05-15 10:31:05 +02:00
654561bcbc Added WSF_REQUEST.has_execution_variable (a_name): BOOLEAN
Since the related value can be Void.
2013-05-14 18:17:48 +02:00
Colin Adams
b4ab4875fc If-Match implemented in skeleton handler 2013-04-13 14:48:28 +01:00
Colin Adams
92ce80cd63 Fixed bug in 32/8 bit string existance 2013-04-11 10:28:14 +01:00
Colin Adams
31ba0a8828 Handle Precondition Failed for If-Match: * where there is no handler for the resource 2013-04-11 09:23:41 +01:00
Jocelyn Fiat
a8a3f3cb8b reuse implementation from WSF_REQUEST to get input data for MIME handlers. 2013-03-29 17:50:34 +01:00
Olivier Ligot
1198d6cef4 Merge remote-tracking branch 'upstream/master' into cors 2013-03-15 14:54:43 +01:00
Olivier Ligot
2ff2dbb7c3 Merge branch 'cors' of github.com:oligot/EWF into cors 2013-03-15 14:19:52 +01:00
Jocelyn Fiat
f6e15b6ce1 Made it compilable with 7.1 2013-03-08 22:13:27 +01:00
Jocelyn Fiat
231b263a82 Added `WSF_REQUEST.table_item' to help user get table item with flat name.
i.e instead of having  item ("foo").item ("bar"), you can do  table_item ("foo[bar]")
2013-03-08 15:36:31 +01:00
Jocelyn Fiat
db4f665de1 Added a version of ISE Library URI modified to be compilable with compiler < 7.2
Fixed openid when redirection is involved
Fixed Openid Attribute Exchange implementation  (AX)
Added WSF_REQUEST.items_as_string_items: ... for convenience, and ease integration with other components (such as the new openid)
2013-02-28 13:10:04 +01:00
Olivier Ligot
12404a2d5c CORS: respect specification regarding Access-Control-Allow-Headers
According to the specification, the value of the response header
Access-Control-Allow-Headers must contain at least all the values of the
request header Access-Control-Request-Headers to be considered a valid request.
Before this commit, only the Authorization value was present, which is enough
for Firefox but not for Chrome.
This should now work as expected.
2013-02-22 15:58:09 +01:00
Jocelyn Fiat
dc6255d410 Fixed implementation of `string_array_item' 2013-02-04 15:32:46 +01:00
Jocelyn Fiat
7193ce93f4 Fixed issue in WSF_REQUEST.read_input_data_into when the content is zero
Cleaned the WGI_CHUNKED_INPUT_STREAM and provides access to last extension, last trailer, ...
Improved WSF_TRACE_RESPONSE to support tracing chunked input back to the client.
2012-12-19 12:47:35 +01:00
Jocelyn Fiat
ffe87ccbe9 Fixed reading chunked input data
When retrieving data block by block, use 8_192 instead of 1_024 (since 1_024 is too small most of the time)
2012-12-18 23:40:26 +01:00
Jocelyn Fiat
71b1bad53d Added basic support for "Expect" http header
i.e:   WSF_REQUEST.http_expect: detachable READABLE_STRING_8

Added WSF_REQUEST.request_time_stamp: INTEGER_64
2012-12-18 23:25:54 +01:00
Jocelyn Fiat
68ec6fb29c Made WSF_REQUEST.is_content_type_accepted safer. 2012-12-14 15:52:54 +01:00
Jocelyn Fiat
b7505e67b8 Added to WSF_REQUEST
- raw_header_data: like meta_string_variable
  - read_input_data_into (buf: STRING)
  - is_content_type_accepted (a_content_type: READABLE_STRING_GENERAL): BOOLEAN
Changed raw_input_data to return IMMUTABLE_STRING_8
Added WSF_METHOD_NOT_ALLOWED_RESPONSE
Added WSF_TRACE_RESPONSE to respond TRACE request
Now Not_found response return html content if the client accepts, other text/plain
Implemented TRACE response, and Method not allowed as implementation of WSF_ROUTED_SERVICE.execute_default
2012-12-13 17:29:46 +01:00
Jocelyn Fiat
125d44ff67 Added debug clause to detect in WSF_ROUTER.map_with_request_methods the existing conflicts with similar mapping.
Added smart handling of HEAD request.
Exported some internal features of WSF_REQUEST and WSF_RESPONSE to respectively WSF_REQUEST_EXPORTER and WSF_RESPONSE_EXPORTER
2012-11-26 22:58:48 +01:00
Jocelyn Fiat
814ea051f1 Fixed compilation 2012-10-23 13:09:26 +02:00
Jocelyn Fiat
56214129bd Provide `server_url: STRING' that compute the http://server_name:port or https://...
using `server_name', `server_port', `server_protocol' and avoid using `http_host'
which is not reliable and could be cause of security issue.
2012-10-23 12:10:33 +02:00
Jocelyn Fiat
016efaed15 Updated Copyright 2012-10-04 15:04:14 +02:00
Jocelyn Fiat
0d8363aa3f Fixed issue when applying URI_TEMPLATE result to WSF_REQUEST to populate path_parameters', now if we have table parameter for foo[]' .. we ignore any string parameter with same name `foo'
Also fixed issue where the encoded name were changed later, since it kept the same string reference.
Added `WSF_REQUEST.is_post_request_method: BOOLEAN' and `WSF_REQUEST.is_get_request_method: BOOLEAN' to ease app code
2012-09-10 09:35:47 +02:00
Jocelyn Fiat
8a58d62a7e Adopted convention name and value or values for WSF_VALUE and descendant (WSF_STRING ...)
kept `key' as redirection, and also string as obsolete redirection.
Router: provide a way to pass the request methods without using manifest string, thanks to WSF_ROUTER_METHODS
  so instead of using manifest array or manifest strings, just create an instance of WSF_ROUTER_METHODS
  for convenience, WSF_ROUTER provides a few `methods_...' returning prebuilt WSF_ROUTER_METHODS objects
Improved code related to unicode handling in URL, and parameters (before the framework was doing too much)
2012-06-11 14:58:13 +02:00
Jocelyn Fiat
c3c27c5027 Rather use (READABLE_)STRING_GENERAL for argument instead of _8 or _32 variant
Better design to set the WSF_REQUEST.path_parameters
   especially handle the case where the request goes trought more than one route (could be the case when using WSF_ROUTING_HANDLER)
2012-05-14 18:12:28 +02:00
Jocelyn Fiat
278a71eaaf Reviewed WSF_REQUEST.item (..) and items to look into Form, Query, and Path (cookie are excluded for security)
Added WSF_REQUEST.path_parameter (a_name): detachable WSF_VALUE
   - fill path_parameters using `import_raw_path_parameters"
     when executing the route
   - reset to previous value with reset_path_parameters (..),
     just in case the request is executed via severals routes.
2012-05-07 23:16:52 +02:00
Jocelyn Fiat
18ced46c99 Removed implicit conversion from HTTP_CONTENT_TYPE to STRING_8
because it could be a source of bug due to hidden conversion (and parameters)
Applied changes to autotest cases
Cosmetic
2012-05-02 11:35:53 +02:00