Commit 8b0a26ee5218e4c0430b8bd850a3b93169030853
1 parent
4bb63871
Start to change the behavior of the action name.
Now in add of ?a= (which means action =) we defined the ?aws_action= (which means 'Anubis Web Server Action = ') the 'a=' will be deprecated in the future because 'a' can be web argument name too easily. In addition of the new name for action, there is an action which is special for not using session stored in cookie. When ...?aws_action=none this means don't restore session state for this action like action name which starting "ajax_".
Showing
1 changed file
with
33 additions
and
63 deletions
Show diff stats
web/CXM_making_a_web_site.anubis
| ... | ... | @@ -2238,6 +2238,7 @@ define (List(Web_arg) lwa, HTTP_Info info) -> Separated_Web_Args($State) |
| 2238 | 2238 | // |
| 2239 | 2239 | // no web arg found => no previous state and no action |
| 2240 | 2240 | // |
| 2241 | + //println("find_cookie(\"state_"+website_name+"\", ..."); | |
| 2241 | 2242 | if find_cookie("state_"+website_name, server_get_cookies(http_headers(info))) is |
| 2242 | 2243 | { |
| 2243 | 2244 | failure then swa(not_found,failure,[]), |
| ... | ... | @@ -2263,8 +2264,10 @@ define (List(Web_arg) lwa, HTTP_Info info) -> Separated_Web_Args($State) |
| 2263 | 2264 | with name = if substr(n,0,4) = "amp;" then substr(n, 4, length(n) - 4) else n, |
| 2264 | 2265 | if name = "a" then |
| 2265 | 2266 | swa(ps1,success(value),op1) |
| 2266 | - else if name = "t" then | |
| 2267 | - swa(ps1,an1,[web_arg("target",value) . op1]) | |
| 2267 | + else if name = "aws_action" then | |
| 2268 | + swa(ps1,success(value),op1) | |
| 2269 | + //else if name = "t" then | |
| 2270 | + // swa(ps1,an1,[web_arg("target",value) . op1]) | |
| 2268 | 2271 | else |
| 2269 | 2272 | swa(ps1,an1,[web_arg(name,value) . op1]), |
| 2270 | 2273 | |
| ... | ... | @@ -2424,41 +2427,8 @@ define List(HTTP_header) |
| 2424 | 2427 | http_header("Set-Cookie", "state_"+website_name+"="+state_name) |
| 2425 | 2428 | ] |
| 2426 | 2429 | . |
| 2427 | - | |
| 2428 | - public define Web_Site | |
| 2429 | - make_web_site_description | |
| 2430 | - ( | |
| 2431 | - List(String) common_names, // for example: ["www.our-business.com", | |
| 2432 | - // "192.168.0.1"] | |
| 2433 | - // the second one is just for testing | |
| 2434 | - String site_directory, // where 'public' and other directories are | |
| 2435 | - // located (should NOT end with '/') | |
| 2436 | - One -> One init, | |
| 2437 | - (HTTP_Info, | |
| 2438 | - List(Web_arg), | |
| 2439 | - Bool is_https) -> $State initial_state, | |
| 2440 | - ($State expired, | |
| 2441 | - HTTP_Info, | |
| 2442 | - List(Web_arg), | |
| 2443 | - Bool is_https) -> $State ticket_expired_state, | |
| 2444 | - (HTTP_Info, | |
| 2445 | - List(Web_arg), | |
| 2446 | - Bool is_https) -> $State ticket_lost_state, | |
| 2447 | - List(Web_Action($State)) actions, | |
| 2448 | - $State -> HTTP_Answer compute_page, | |
| 2449 | - $State -> List(HTTP_header) additional_headers, | |
| 2450 | - Int timeout, // seconds (todo: minutes) | |
| 2451 | - Redirections redirections, | |
| 2452 | - String charset, | |
| 2453 | - List(String) journal_extensions, | |
| 2454 | - List(String) journal_headers, | |
| 2455 | - String authorization_secret, | |
| 2456 | - List(MIME) known_mime_types, | |
| 2457 | - (String action_name, | |
| 2458 | - List(Web_arg) args)-> One before_send_file | |
| 2459 | - ). | |
| 2460 | 2430 | |
| 2461 | - | |
| 2431 | + | |
| 2462 | 2432 | public define Web_Site |
| 2463 | 2433 | make_web_site_description |
| 2464 | 2434 | ( |
| ... | ... | @@ -2519,31 +2489,29 @@ public define Web_Site |
| 2519 | 2489 | List(Web_arg) lwa, |
| 2520 | 2490 | Bool is_https) |-> |
| 2521 | 2491 | //(Printable_tree) |
| 2522 | - if separate_web_args(lwa, http_info) is | |
| 2523 | - { | |
| 2524 | - swa(mb_previous_state, mb_action_name, operands) then | |
| 2525 | - with new_state = if mb_previous_state is | |
| 2526 | - { | |
| 2527 | - not_found then | |
| 2528 | - //println("previous state not found"); | |
| 2529 | - if mb_action_name is | |
| 2530 | - { | |
| 2531 | - failure then initial_state(http_info, operands, is_https), | |
| 2532 | - success(_) then | |
| 2533 | - ticket_lost_state(mb_action_name, http_info,operands,is_https) | |
| 2534 | - }, | |
| 2535 | - | |
| 2536 | - out_of_date(state) then | |
| 2537 | - ticket_expired_state(state, mb_action_name, http_info,operands,is_https), | |
| 2538 | - | |
| 2539 | - still_valid(state) then | |
| 2540 | - if mb_action_name is | |
| 2541 | - { | |
| 2542 | - failure then state, | |
| 2543 | - success(action_name) then | |
| 2544 | - apply_action(state,action_name,http_info,operands,is_https) | |
| 2545 | - } | |
| 2546 | - }, | |
| 2492 | + since separate_web_args(lwa, http_info) is swa(mb_previous_state, mb_action_name, operands), | |
| 2493 | + with new_state = if mb_previous_state is | |
| 2494 | + { | |
| 2495 | + not_found then | |
| 2496 | + //println("previous state not found"); | |
| 2497 | + if mb_action_name is | |
| 2498 | + { | |
| 2499 | + failure then initial_state(http_info, operands, is_https), | |
| 2500 | + success(_) then | |
| 2501 | + ticket_lost_state(mb_action_name, http_info,operands,is_https) | |
| 2502 | + }, | |
| 2503 | + | |
| 2504 | + out_of_date(state) then | |
| 2505 | + ticket_expired_state(state, mb_action_name, http_info,operands,is_https), | |
| 2506 | + | |
| 2507 | + still_valid(state) then | |
| 2508 | + if mb_action_name is | |
| 2509 | + { | |
| 2510 | + failure then state, | |
| 2511 | + success(action_name) then | |
| 2512 | + apply_action(state,action_name,http_info,operands,is_https) | |
| 2513 | + } | |
| 2514 | + }, | |
| 2547 | 2515 | //if state_and_headers is (session_ticket, mb_new_state, headers) then |
| 2548 | 2516 | with state_name = save_state(new_state), |
| 2549 | 2517 | //println("Cookie new STATE NAME "+state_name); |
| ... | ... | @@ -2551,7 +2519,9 @@ public define Web_Site |
| 2551 | 2519 | { |
| 2552 | 2520 | failure then [], |
| 2553 | 2521 | success(action_name) then |
| 2554 | - if substr(action_name, 0, 5)="ajax_" then | |
| 2522 | + if action_name = "none" then | |
| 2523 | + [] | |
| 2524 | + else if substr(action_name, 0, 5)="ajax_" then | |
| 2555 | 2525 | [] |
| 2556 | 2526 | else |
| 2557 | 2527 | make_state_cookie_headers(website_name, state_name) |
| ... | ... | @@ -2563,7 +2533,7 @@ public define Web_Site |
| 2563 | 2533 | compute_page(new_state), |
| 2564 | 2534 | is_https, |
| 2565 | 2535 | charset) |
| 2566 | - }), | |
| 2536 | + ), | |
| 2567 | 2537 | // |
| 2568 | 2538 | // make the delete_out_of_date function |
| 2569 | 2539 | // | ... | ... |