• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

2.1 library(pengines): Pengines: Web Logic Programming Made Easy
All Application Manual Name SummaryHelp

  • Documentation
    • Reference manual
    • Packages
      • Pengines: Web Logic Programming Made Easy
        • Pengine libraries
          • library(pengines): Pengines: Web Logic Programming Made Easy
            • pengine_create/1
            • pengine_ask/3
            • pengine_next/2
            • pengine_stop/2
            • pengine_abort/1
            • pengine_destroy/1
            • pengine_destroy/2
            • pengine_self/1
            • pengine_application/1
            • current_pengine_application/1
            • pengine_property/2
            • pengine_output/1
            • pengine_debug/2
            • thread_pool:create_pool/1
            • pengine_done/0
            • prepare_module/3
            • prepare_goal/3
            • not_sandboxed/2
            • pengine_pull_response/2
            • pengine_input/2
            • pengine_respond/3
            • pengine_event_loop/2
            • pengine_rpc/2
            • pengine_rpc/3
            • prompt/3
            • output/2
            • portray_blob/2
            • write_result/3
            • add_error_details/3
            • event_to_json/3
            • authentication_hook/3
            • pengine_user/1
            • pengine_event/1
            • pengine_event/2
Availability::- use_module(library(pengines)).
Source[semidet,multifile]authentication_hook(+Request, +Application, -User)
This hook is called from the =/pengine/create= HTTP handler to discover whether the server is accessed by an authorized user. It can react in three ways:

  • Succeed, binding User to a ground term. The authentity of the user is available through pengine_user/1.
  • Fail. The =/create= succeeds, but the pengine is not associated with a user.
  • Throw an exception to prevent creation of the pengine. Two meaningful exceptions are:

    • throw(http_reply(authorise(basic(Realm)))) Start a normal HTTP login challenge (reply 401)
    • throw(http_reply(forbidden(Path)))) Reject the request using a 403 repply.
See also
http_authenticate/3 can be used to implement this hook using default HTTP authentication data.
ClioPatria (version V3.1.1-51-ga0b30a5)