HOR-433 "(WSSO Plugin) Cuando se ingresa al proceso, se..." SOLVED
Issue:
(WSSO Plugin) Cuando se ingresa al proceso, se puede verificar que no se puede recuperar la data del mismo
Cause:
Se esta usando el mismo VirtualHost para clientes WEB y REST
Solution:
Se realizo la implementacion de la nueva directiva "server_hostname_requests_frontend" del "env.ini"; esto para
el caso en que se requiera del "feature SSO", tomar nota de lo siguiente:
- Habilitar el modulo "mod_headers" de apache (httpd.conf)
- Tener configurado un VirtualHost normal para ProcessMaker (pmos.conf)
- Para el "feature SSO" se debera crear un 2do VirtualHost con toda la configuracion necesaria para
el mismo (pmos.conf), por lo que todos los usuarios que requieran este feature, deberan usar este para
acceder por browser
- Crear un 3er VirtualHost para las solicitudes del front-end (DESIGNER), en donde se agregara lo
siguiente (pmos.conf):
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Content-Type,Depth,User-Agent,X-File-Size,X-Requested-With,If-Modified-Since,X-File-Name,Cache-Control,Authorization"
Header set Access-Control-Allow-Methods "OPTIONS,GET,POST,PUT,DELETE"
</IfModule>
De tal forma que quedara asi:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Content-Type,Depth,User-Agent,X-File-Size,X-Requested-With,If-Modified-Since,X-File-Name,Cache-Control,Authorization"
Header set Access-Control-Allow-Methods "OPTIONS,GET,POST,PUT,DELETE"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/(.*)$ app.php [QSA,L,NC]
</IfModule>
- Agregar lo siguiente al archivo "/path/to/processmaker/shared/sites/your-workspace/env.ini"
server_hostname_requests_frontend = "{your_server_hostname_requests_frontend}"
Donde:
- your_server_hostname_requests_frontend, es el nombre del servidor configurado para el
front-end (3er VirtualHost), ejemplo:
server_hostname_requests_frontend = "192.168.40.72:3017"
- Tambien se puede hacer la configuracion en el archivo "/path/to/processmaker/workflow/engine/config/env.ini",
considerar que esto afectara a todos lo workspaces creados
Note:
Todo el desarrollo se lo hizo en un server Windows-Server-2012-R2 con Apache-2.4
This commit is contained in:
@@ -223,7 +223,7 @@ class pmDynaform
|
|||||||
$json->optionsSql[] = $option;
|
$json->optionsSql[] = $option;
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -602,7 +602,7 @@ class pmDynaform
|
|||||||
$data[$json->variable === "" ? $json->id : $json->variable] = $row[0];
|
$data[$json->variable === "" ? $json->id : $json->variable] = $row[0];
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -646,6 +646,7 @@ class pmDynaform
|
|||||||
$javascript = "
|
$javascript = "
|
||||||
<script type=\"text/javascript\">
|
<script type=\"text/javascript\">
|
||||||
var jsondata = " . G::json_encode($json) . ";
|
var jsondata = " . G::json_encode($json) . ";
|
||||||
|
var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";
|
||||||
var pm_run_outside_main_app = \"\";
|
var pm_run_outside_main_app = \"\";
|
||||||
var dyn_uid = \"" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
var dyn_uid = \"" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
||||||
var __DynaformName__ = \"" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "\";
|
var __DynaformName__ = \"" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "\";
|
||||||
@@ -701,6 +702,7 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>\n" .
|
"<script type='text/javascript'>\n" .
|
||||||
"var jsondata = " . G::json_encode($json) . ";\n" .
|
"var jsondata = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
"var pm_run_outside_main_app = null;\n" .
|
"var pm_run_outside_main_app = null;\n" .
|
||||||
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
||||||
"var __DynaformName__ = '" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "';\n" .
|
"var __DynaformName__ = '" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "';\n" .
|
||||||
@@ -773,6 +775,7 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>\n" .
|
"<script type='text/javascript'>\n" .
|
||||||
"var jsondata = " . G::json_encode($json) . ";\n" .
|
"var jsondata = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
"var pm_run_outside_main_app = '" . $this->fields["PM_RUN_OUTSIDE_MAIN_APP"] . "';\n" .
|
"var pm_run_outside_main_app = '" . $this->fields["PM_RUN_OUTSIDE_MAIN_APP"] . "';\n" .
|
||||||
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
||||||
"var __DynaformName__ = '" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "';\n" .
|
"var __DynaformName__ = '" . $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"] . "';\n" .
|
||||||
@@ -825,6 +828,7 @@ class pmDynaform
|
|||||||
$javascrip = "
|
$javascrip = "
|
||||||
<script type=\"text/javascript\">
|
<script type=\"text/javascript\">
|
||||||
var jsondata = " . G::json_encode($json) . ";
|
var jsondata = " . G::json_encode($json) . ";
|
||||||
|
var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";
|
||||||
var pm_run_outside_main_app = null;
|
var pm_run_outside_main_app = null;
|
||||||
var dyn_uid = \"" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
var dyn_uid = \"" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
||||||
var __DynaformName__ = \"" . $this->fields["PRO_UID"] . "_" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
var __DynaformName__ = \"" . $this->fields["PRO_UID"] . "_" . $this->fields["CURRENT_DYNAFORM"] . "\";
|
||||||
@@ -864,6 +868,7 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>\n" .
|
"<script type='text/javascript'>\n" .
|
||||||
"var jsondata = " . G::json_encode($json) . ";\n" .
|
"var jsondata = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
"var pm_run_outside_main_app = null;\n" .
|
"var pm_run_outside_main_app = null;\n" .
|
||||||
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
||||||
"var __DynaformName__ = null;\n" .
|
"var __DynaformName__ = null;\n" .
|
||||||
@@ -901,6 +906,7 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>\n" .
|
"<script type='text/javascript'>\n" .
|
||||||
"var jsondata = " . G::json_encode($json) . ";\n" .
|
"var jsondata = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
"var pm_run_outside_main_app = null;\n" .
|
"var pm_run_outside_main_app = null;\n" .
|
||||||
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
|
||||||
"var __DynaformName__ = null;\n" .
|
"var __DynaformName__ = null;\n" .
|
||||||
@@ -934,7 +940,8 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>" .
|
"<script type='text/javascript'>" .
|
||||||
"var sysLang = '" . SYS_LANG . "';\n" .
|
"var sysLang = '" . SYS_LANG . "';\n" .
|
||||||
"var jsonData = " . G::json_encode($json) . ";" .
|
"var jsonData = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
$js .
|
$js .
|
||||||
"</script>";
|
"</script>";
|
||||||
|
|
||||||
@@ -955,6 +962,7 @@ class pmDynaform
|
|||||||
$javascrip = "" .
|
$javascrip = "" .
|
||||||
"<script type='text/javascript'>\n" .
|
"<script type='text/javascript'>\n" .
|
||||||
"var jsondata = " . G::json_encode($json) . ";\n" .
|
"var jsondata = " . G::json_encode($json) . ";\n" .
|
||||||
|
"var httpServerHostname = \"" . System::getHttpServerHostnameRequestsFrontEnd(false) . "\";\n" .
|
||||||
"var pm_run_outside_main_app = null;\n" .
|
"var pm_run_outside_main_app = null;\n" .
|
||||||
"var dyn_uid = '" . $currentDynaform . "';\n" .
|
"var dyn_uid = '" . $currentDynaform . "';\n" .
|
||||||
"var __DynaformName__ = null;\n" .
|
"var __DynaformName__ = null;\n" .
|
||||||
@@ -1214,7 +1222,7 @@ class pmDynaform
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* You obtain an array of elements according to search criteria.
|
* You obtain an array of elements according to search criteria.
|
||||||
*
|
*
|
||||||
* @param object $json
|
* @param object $json
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @param string $for
|
* @param string $for
|
||||||
@@ -1546,7 +1554,7 @@ class pmDynaform
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the value converted to string if it is not null.
|
* Returns the value converted to string if it is not null.
|
||||||
*
|
*
|
||||||
* @param string $string
|
* @param string $string
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ class System
|
|||||||
'safari_cookie_lifetime' => 1,
|
'safari_cookie_lifetime' => 1,
|
||||||
'error_reporting' => "",
|
'error_reporting' => "",
|
||||||
'display_errors' => 'On',
|
'display_errors' => 'On',
|
||||||
'system_utc_time_zone' => 0
|
'system_utc_time_zone' => 0,
|
||||||
|
'server_hostname_requests_frontend' => ''
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1252,6 +1253,28 @@ class System
|
|||||||
|
|
||||||
return self::$debug;
|
return self::$debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the complete name of the server host configured for requests Front-End (e.g. https://127.0.0.1:81)
|
||||||
|
*
|
||||||
|
* @param bool $flagHttp Add https/http string
|
||||||
|
*
|
||||||
|
* @return string Returns an string with the complete name of the server host configured for requests Front-End
|
||||||
|
*/
|
||||||
|
public static function getHttpServerHostnameRequestsFrontEnd($flagHttp = true)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$arraySystemConfiguration = self::getSystemConfiguration();
|
||||||
|
|
||||||
|
$serverHostname = $arraySystemConfiguration['server_hostname_requests_frontend'];
|
||||||
|
$serverHostname = ($serverHostname != '')? $serverHostname : $_SERVER['HTTP_HOST'];
|
||||||
|
|
||||||
|
//Return
|
||||||
|
return (($flagHttp)? ((G::is_https())? 'https://' : 'http://') : '') . $serverHostname;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// end System class
|
// end System class
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ class Designer extends Controller
|
|||||||
$this->setVar("SYS_SYS", SYS_SYS);
|
$this->setVar("SYS_SYS", SYS_SYS);
|
||||||
$this->setVar("SYS_LANG", SYS_LANG);
|
$this->setVar("SYS_LANG", SYS_LANG);
|
||||||
$this->setVar("SYS_SKIN", SYS_SKIN);
|
$this->setVar("SYS_SKIN", SYS_SKIN);
|
||||||
|
$this->setVar('HTTP_SERVER_HOSTNAME', System::getHttpServerHostnameRequestsFrontEnd());
|
||||||
|
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
if (! file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) {
|
if (! file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class StrategicDashboard extends Controller
|
|||||||
$user = new Users();
|
$user = new Users();
|
||||||
$user = $user->load($RBAC->aUserInfo['USER_INFO']['USR_UID']);
|
$user = $user->load($RBAC->aUserInfo['USER_INFO']['USR_UID']);
|
||||||
$this->usrUnitCost = $this->currencySymbolToShow($user);
|
$this->usrUnitCost = $this->currencySymbolToShow($user);
|
||||||
$this->urlProxy = '/api/1.0/' . SYS_SYS . '/';
|
$this->urlProxy = System::getHttpServerHostnameRequestsFrontEnd() . '/api/1.0/' . SYS_SYS . '/';
|
||||||
//change
|
//change
|
||||||
$clientId = 'x-pm-local-client';
|
$clientId = 'x-pm-local-client';
|
||||||
$client = $this->getClientCredentials($clientId);
|
$client = $this->getClientCredentials($clientId);
|
||||||
@@ -144,7 +144,7 @@ class StrategicDashboard extends Controller
|
|||||||
public function formDashboard ($data)
|
public function formDashboard ($data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$this->includeExtJS( 'strategicDashboard/formDashboard', true, true );
|
$this->includeExtJS( 'strategicDashboard/formDashboard', true, true );
|
||||||
$this->setView( 'strategicDashboard/formDashboard' );
|
$this->setView( 'strategicDashboard/formDashboard' );
|
||||||
|
|
||||||
@@ -164,7 +164,7 @@ class StrategicDashboard extends Controller
|
|||||||
public function formEditDashboard ($data)
|
public function formEditDashboard ($data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$this->includeExtJS( 'strategicDashboard/formDashboard', true, true );
|
$this->includeExtJS( 'strategicDashboard/formDashboard', true, true );
|
||||||
$this->setView( 'strategicDashboard/formDashboard' );
|
$this->setView( 'strategicDashboard/formDashboard' );
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ class StrategicDashboard extends Controller
|
|||||||
$this->setVar('usrId', $this->usrId);
|
$this->setVar('usrId', $this->usrId);
|
||||||
$this->setVar('credentials', $this->clientToken);
|
$this->setVar('credentials', $this->clientToken);
|
||||||
$this->setVar('unitCost', $this->usrUnitCost);
|
$this->setVar('unitCost', $this->usrUnitCost);
|
||||||
|
|
||||||
$translation = $this->getTranslations();
|
$translation = $this->getTranslations();
|
||||||
$this->setVar('translation', $translation);
|
$this->setVar('translation', $translation);
|
||||||
$this->render();
|
$this->render();
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ $(window).load(function () {
|
|||||||
action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid;
|
action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid;
|
||||||
}
|
}
|
||||||
url = location.protocol + '//' + location.host;
|
url = location.protocol + '//' + location.host;
|
||||||
|
|
||||||
url += '/sys' + workspace + '/en/neoclassic/cases/' + action;
|
url += '/sys' + workspace + '/en/neoclassic/cases/' + action;
|
||||||
method = 'POST';
|
method = 'POST';
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ $(window).load(function () {
|
|||||||
},
|
},
|
||||||
formAjax: loadAjaxParams(),
|
formAjax: loadAjaxParams(),
|
||||||
keys: {
|
keys: {
|
||||||
server: location.host,
|
server: httpServerHostname,
|
||||||
projectId: prj_uid,
|
projectId: prj_uid,
|
||||||
workspace: workspace
|
workspace: workspace
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ while ($rsSql->next()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (count($arrayTabItem) > 0) {
|
if (count($arrayTabItem) > 0) {
|
||||||
$urlProxy = '/api/1.0/' . SYS_SYS . '/consolidated/';
|
$urlProxy = System::getHttpServerHostnameRequestsFrontEnd() . '/api/1.0/' . SYS_SYS . '/consolidated/';
|
||||||
$clientId = 'x-pm-local-client';
|
$clientId = 'x-pm-local-client';
|
||||||
$client = getClientCredentials($clientId);
|
$client = getClientCredentials($clientId);
|
||||||
$authCode = getAuthorizationCode($client);
|
$authCode = getAuthorizationCode($client);
|
||||||
@@ -178,7 +178,7 @@ if (count($arrayTabItem) > 0) {
|
|||||||
$headPublisher->assign("FORMATS", $conf->getFormats());
|
$headPublisher->assign("FORMATS", $conf->getFormats());
|
||||||
$headPublisher->assign("urlProxy", $urlProxy);
|
$headPublisher->assign("urlProxy", $urlProxy);
|
||||||
$headPublisher->assign('credentials', $clientToken );
|
$headPublisher->assign('credentials', $clientToken );
|
||||||
|
|
||||||
$ieVersion = null;
|
$ieVersion = null;
|
||||||
if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){
|
if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){
|
||||||
$ieVersion = intval($arrayMatch[1]);
|
$ieVersion = intval($arrayMatch[1]);
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ if ($oServerConf->isRtl( SYS_LANG )) {
|
|||||||
|
|
||||||
$urlProxy = 'casesMenuLoader?action=getAllCounters&r=';
|
$urlProxy = 'casesMenuLoader?action=getAllCounters&r=';
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
$urlProxy = '/api/1.0/' . SYS_SYS . '/system/counters-lists?r=';
|
$urlProxy = System::getHttpServerHostnameRequestsFrontEnd() . '/api/1.0/' . SYS_SYS . '/system/counters-lists?r=';
|
||||||
$clientId = 'x-pm-local-client';
|
$clientId = 'x-pm-local-client';
|
||||||
$client = getClientCredentials($clientId);
|
$client = getClientCredentials($clientId);
|
||||||
$authCode = getAuthorizationCode($client);
|
$authCode = getAuthorizationCode($client);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
var SYS_SYS = "{$SYS_SYS}";
|
var SYS_SYS = "{$SYS_SYS}";
|
||||||
var SYS_LANG = "{$SYS_LANG}";
|
var SYS_LANG = "{$SYS_LANG}";
|
||||||
var SYS_SKIN = "{$SYS_SKIN}";
|
var SYS_SKIN = "{$SYS_SKIN}";
|
||||||
|
var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}";
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="/lib-dev/js/wz_jsgraphics.js"></script>
|
<script type="text/javascript" src="/lib-dev/js/wz_jsgraphics.js"></script>
|
||||||
<script type="text/javascript" src="/lib-dev/js/jquery-1.10.2.min.js"></script>
|
<script type="text/javascript" src="/lib-dev/js/jquery-1.10.2.min.js"></script>
|
||||||
@@ -81,6 +82,7 @@
|
|||||||
var SYS_SYS = "{$SYS_SYS}";
|
var SYS_SYS = "{$SYS_SYS}";
|
||||||
var SYS_LANG = "{$SYS_LANG}";
|
var SYS_LANG = "{$SYS_LANG}";
|
||||||
var SYS_SKIN = "{$SYS_SKIN}";
|
var SYS_SKIN = "{$SYS_SKIN}";
|
||||||
|
var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}";
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="/lib/js/mafe-{$buildhash}.js"></script>
|
<script type="text/javascript" src="/lib/js/mafe-{$buildhash}.js"></script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user