AAFM#34930 Eerste aanzet App Authenticatie

svn path=/Website/branches/v2015.3/; revision=27986
This commit is contained in:
Jos Groot Lipman
2016-02-01 15:09:24 +00:00
parent 38e00a2ce1
commit d59d3f6f8c
3 changed files with 32 additions and 2 deletions

View File

@@ -59,7 +59,33 @@ api2_rest = {
oRs.Close();
}
// Impersonate?
// APP? Die kan meta-rechten hebben (bijvoorbeeld auth-token opvragen van gebruiker)
var APPKEY;
if (S("fac_api_key_in_url"))
APPKEY = getQParam("HTTP_X_FACILITOR_APP_KEY", "");
if (!APPKEY && Request.ServerVariables("HTTP_X_FACILITOR_APP_KEY").Count)
APPKEY = String(Request.ServerVariables("HTTP_X_FACILITOR_APP_KEY")); // Meegegeven als X-FACILITOR-APP-Key
if (APPKEY)
{
var sql = "SELECT prs_perslid_key, prs_perslid_naam"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND prs_perslid_apikey = " + safe.quoted_sql(APPKEY);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
__DoLog("Unauthorized app");
Response.Status = "401 Unauthorized";
Response.End;
};
__Log("APP User is: " + oRs("prs_perslid_naam").Value);
/* global */ app_user_key = oRs("prs_perslid_key").Value;
/* global */ app_user = new Perslid(app_user_key);
oRs.Close()
}
// Impersonate? (anno jan-2016 in de praktijk nergens gebruikt, kan mogelijk vervallen)
var IMPERS;
if (S("fac_api_key_in_url"))
IMPERS = getQParam("SWITCHUSER", "");

View File

@@ -53,7 +53,7 @@ model_persons =
//var urole = "fe"; // TODO: Moet echt niet ter zake doen
//var autfunction = urole == "fe"? "WEB_ALGUSE" : "WEB_ALGMAN";
//params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
//if (params.filter.id == user_key)
if (app_user_key > 0) // Alleen App's mogen dit opvragen. TODO: Ook echt authorisatie controleren?
{
if (user.prs_perslid_apikey() && user.oslogin())
{

View File

@@ -222,6 +222,10 @@ if (typeof Session("ASPFIXATION") != "undefined")
// Zijn we bekend? Zo niet dan naar login.asp om dat uit te zoeken
var user_key = Session("user_key") || -1;
var user; // wordt bij geldige user gevuld met new Perslid
// Hetzelfde voor API2 app-user
var app_user_key = -1;
var app_user;
if (user_key < 0 && typeof LOGIN_try == "undefined")
{