Hi everyone
- authenticate the user (with a standard user/password parameter),
- do basic security stuff (for example, prevent code injection in
parameters),
I would definitely advocate the use of BASIC authentication as the
standard authentication approach. That way we don't need to do anything
unusual in terms of security, and we hook into an existing RFC-mandated
standard. Digest and certificate are two other alternatives, but digest
is generally suboptimal as it requires server side sessions to store the
nonce value. Certificates (X509) are great, if you have a clever way of
integrating with them.
In terms of authorization, like protecting particular service endpoints
or the other Java layers that it calls, this should be the
responsibility of the server and be beyond the scope of the Qooxdoo
Server API. Well, maybe we should specify a particular exception to be
thrown if the user is unauthorized or fails to authenticate, and also
provide a way of querying roles associated with the user. Something like:
public String[] authenticate(String username, String password);
With the String[] being a list of roles, and those roles being unable
and identifiable by Qooxdoo client-side widgets, such as being able to
hide or disable various UI controls.
I am happy to discuss security in a depth and develop a security
protocol for this integration API, as I've got a background in it due to
my involvement leading the Acegi Security project
(http://acegisecurity.org).
- convert JSON data in the parameters into native data structures
- call an named object and object method (for example,
"bibliography.getRowsBySql") - this could be a java object or a php
object - objects could also be template files which return HTML
This is already done for free by the various JSON-RPC implementations
out there. See http://json-rpc.org/wiki/implementations for a full list
of implementation. Note there are four PHP implementations, which should
make the PHP users on this list happy! :-)
- return data, indicating the mimegtype of the data (for example,
text/json, text/javascript, text/plain, text/html, x-application/xul,
text/xml, or what have you)
I don't see why you'd need to deal with this. JSON just returns a
JavaScript object that the client can eval() directly.
do you really plan to develop a backend with these features? this is a
whole applicationserver. i don't know the PHP world, but with java and
python you have lots of them.
I'd imagine the main value-add of the Qooxdoo Server API is:
- Selecting, standardising on and reusing existing technologies as far
as possible (eg BASIC authentication, JSON-RPC, XML etc)
- Using XML to define the Qooxdoo application, but without limiting the
ability to use hand-crafted JavaScript
- Well-defined server endpoints for key infrastructure integration
functions (eg a JSON-RPC service name and method signature for things
like callbacks, obtaining a list of roles etc)
- Tooling support for XML definition (namely XML schemas etc to permit
type-safe validation and auto-completion in XML editors)
- Design patterns (such as using data transfer objects, client-side
editors to edit the transfer objects, how localization is handled,
layout of directory structures etc)
- Sample application showing full interoperability
- Ultimately developing GUI tools to assist rapidly build a Qooxdoo
application, dialog editors etc using the XML syntax
As can be seen, most of this is not server-side specific at all. The
server-side platform would only need to implement the well-defined
server endpoints in the preferred language. This should be relatively
easy to achieve and minimise porting efforts. Are others seeing this API
as doing something more? Less? Other ideas? Maybe the key Qooxdoo
authors could comment on the viability of using XML in this manner
(versus hand-crafting JavaScript)?
Best regards
Ben
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel