mirror of
https://github.com/falk-werner/webfuse-provider
synced 2026-03-02 04:09:18 +00:00
feat(authentication): provide an authentication mechanism (#19)
* moves server into session * renames jsonrpc server to jsonrpc proxy * moves server into session * renames jsonrpc server to jsonrpc proxy * adds json rpc server * removes obsolete proxy from protocol * changes interface of jsonrpc_proxy_onresult to accept previously parsed messages * adds infrastructure to process incoming requests; fixes invalid read of ill formatted responses * adds description of authentication request * adds authentication request * adds userdb for authentication purposes * removes debug code: console.log() * fixes cmake build error (missing openssl symbols) * fixes typo * replaces ASCII art by UML diagram * renames BAD_NOACCESS to BAD_ACCESS_DENIED * fixes style * adds docu of authentication * ignored false positives of flawfinder * fixes style issues * fixes javascript style issues
This commit is contained in:
BIN
doc/authenticate.png
Normal file
BIN
doc/authenticate.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
28
doc/authenticate.uml
Normal file
28
doc/authenticate.uml
Normal file
@@ -0,0 +1,28 @@
|
||||
@startuml
|
||||
participant "Filesystem Provider\n(e.g. Webbrowser)" as provider
|
||||
participant "webfuse\ndaemon" as daemon
|
||||
actor "user" as user
|
||||
|
||||
group directory listing fails without authentication
|
||||
user -> daemon : ls
|
||||
daemon -> daemon : is_authenticated
|
||||
daemon -->x user : error: no entry
|
||||
end
|
||||
|
||||
|
||||
group authenticate
|
||||
provider -> daemon: authenticate(type, credentials)
|
||||
daemon -> daemon: get_authenticator(type)
|
||||
daemon -> daemon: check(credentials)
|
||||
daemon --> provider: result
|
||||
end
|
||||
|
||||
group directory listing succeeds after authentication
|
||||
user -> daemon : ls
|
||||
daemon -> daemon : is_authenticated
|
||||
daemon -> provider : readdir
|
||||
provider --> daemon : readdir_resp
|
||||
daemon --> user : [., ..]
|
||||
end
|
||||
|
||||
@enduml
|
||||
BIN
doc/concept.png
Normal file
BIN
doc/concept.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
30
doc/concept.uml
Normal file
30
doc/concept.uml
Normal file
@@ -0,0 +1,30 @@
|
||||
@startuml
|
||||
participant "Filesystem Provider\n(e.g. Webbrowser)" as provider
|
||||
participant "webfuse\ndaemon" as daemon
|
||||
actor "user" as user
|
||||
|
||||
group startup
|
||||
daemon -> daemon : fuse_mount
|
||||
daemon -> daemon : start ws
|
||||
end
|
||||
...
|
||||
|
||||
group connect
|
||||
provider -> daemon : connect
|
||||
opt authentication
|
||||
provider -> daemon: authenticate
|
||||
daemon -> daemon: check credentials
|
||||
daemon --> provider: okay
|
||||
end
|
||||
end
|
||||
...
|
||||
|
||||
group directory listing
|
||||
user -> daemon : ls
|
||||
daemon -> provider : readdir
|
||||
provider --> daemon : readdir_resp
|
||||
daemon --> user : [., ..]
|
||||
end
|
||||
...
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user