Moin Leute,
wollte nur mal kurz fragen, ob es sonst noch jmd. auffiel, dass man seit OXID 4.9 (rc2 + final) nicht mehr in den Admin kommt, wenn der Shop-SSL über einen Proxy läuft? Ist dies ein Bug oder gar gewollt? Ist zwar nicht die beste Lösung für Shops, klar, aber trotzdem weit verbreitet. Bisher ging es auch immer reibungslos, da es ja in OXID explizit vorgesehen ist, siehe oxconfig, function _checkSsl():
//additional special handling for profihost customers
if (isset($aServerVars['HTTP_X_FORWARDED_SERVER']) &&
(strpos($aServerVars['HTTP_X_FORWARDED_SERVER'], 'ssl') !== false ||
strpos($aServerVars['HTTP_X_FORWARDED_SERVER'], 'secure-online-shopping.de') !== false)
) {
$this->setIsSsl(true);
}
Der Login selbst scheint zu klappen, aber sobald “navigation” ins Spiel kommt (Top-Frame), dann wird man sofort wieder ausgeloggt und zum Login zurückgeleitet mit “redirected=1”. Weder im Server- noch im exception-Log findet sich ein Eintrag dazu, also tappe ich gerade ziemlich im Dunkeln…
Edit/PS:
Vorhin dämmerte es allmählich, aber nun bin ich fast noch verwunderter als vorher. Und zwar ist es so, dass in oxutilsurl die Funktion _getHosts() geleert wurde und keine Alternative existiert in Form von _addHost() (wie in OXID 4.8), die das interne Array füllt. Somit schlägt “isCurrentShopHost()” immer fehl, da nur der aktuelle Shop-Host geprüft wird, aber eben nicht der SSL-Proxy und die Language-URLs, etc.
Gibt es also ein trifftigen Grund, warum dieser vorherige Code aus 4.8 gelöscht wurde, ich sehe nicht, was dagegen spricht, und im Changelog ist auch nichts dazu vermerkt:
protected function _getHosts()
{
if ( $this->_aHosts === null ) {
$this->_aHosts = array();
$oConfig = $this->getConfig();
// mall (ssl) url
$this->_addHost( $oConfig->getConfigParam( "sMallShopURL" ), $this->_aHosts );
$this->_addHost( $oConfig->getConfigParam( "sMallSSLShopURL" ), $this->_aHosts );
// language url
$this->_addHost( $oConfig->getConfigParam( 'aLanguageURLs' ), $this->_aHosts );
$this->_addHost( $oConfig->getConfigParam( 'aLanguageSSLURLs' ), $this->_aHosts );
if ( !count( $aHosts ) && !$oConfig->mustAddShopIdToRequest() ) {
// current url
$this->_addHost( $oConfig->getConfigParam( "sShopURL" ), $this->_aHosts );
$this->_addHost( $oConfig->getConfigParam( "sSSLShopURL" ), $this->_aHosts );
}
if ( $this->isAdmin() ) {
$this->_addHost( $oConfig->getConfigParam( "sAdminSSLURL" ), $this->_aHosts );
}
}
return $this->_aHosts;
}
Soll man das nun per Hotix-Modul wieder hinzufügen (schnell gemacht), oder was wäre der beste Weg, dies zu “fixen” (ist ja immer noch nicht klar, ob es ein Fehler oder gewollt ist)?