Blog Sections Open

Fixing WebLoginPE Authorization Loops in Opera on Protected Pages

A debugging guide for an older Evolution CMS edge case where protected pages and WebLoginPE caused inconsistent Opera behavior.

This article documented a very specific but very real bug: on protected pages that used WebLoginPE, Opera could cycle between an authentication error, a blank page, and the actual content.

When it happened

  • a resource group protected the target document
  • the unauthorized page itself rendered the login form
  • Opera cached the unauthorized response poorly

Root cause

The issue was traced to the sendUnauthorizedPage() flow inside document.parser.class.inc.php, which sent an explicit HTTP/1.1 401 Unauthorized header. Opera cached that state and handled the next requests inconsistently.

Original patch

$this->sendForward($unauthorizedPage,'HTTP/1.1 401 Unauthorized');

was changed to:

$this->sendForward($unauthorizedPage);

Additional note

The original article also recommended setting liHomeId dynamically when wrapping WebLoginPE in a helper snippet, so successful login redirects returned the user to the correct protected page instead of the generic unauthorized page.

It is an old browser-specific issue, but the debugging pattern is timeless: when auth flows behave inconsistently, inspect both redirects and response headers before you blame the login snippet itself.

Newer post

Using the Cirkuit TinyMCE Skin in Evolution CMS

An extras-style note about bringing the Revolution default TinyMCE skin into Evolution CMS for a more polished editing experience.

Older post

Building a Simple Multilingual Switcher Snippet in Evolution CMS

A classic multilingual snippet pattern for projects that need language switching in Evolution CMS without moving to a heavier framework or rewriting the whole site.