diff --git a/CHANGELOG.md b/CHANGELOG.md index 91b9aee..2b9ed3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +## [1.2.5] - 2026-03-27 +### Fixed +- Corregido error 401 Unauthorized en la edición de menús con nombres que contienen la palabra "login". Se ha refinado el interceptor para aplicar el prefijo "Bearer" de forma selectiva mediante validación exacta del path `/auth/login`. + ## [1.2.4] - 2026-03-20 ### Added - Se ha mejorado el editor de menus para poder editar directamente la plantilla twig en lugar del html renderizado. diff --git a/ogWebconsole/src/app/core/services/custom.interceptor.ts b/ogWebconsole/src/app/core/services/custom.interceptor.ts index 319a1e4..69768b2 100644 --- a/ogWebconsole/src/app/core/services/custom.interceptor.ts +++ b/ogWebconsole/src/app/core/services/custom.interceptor.ts @@ -12,7 +12,18 @@ export class CustomInterceptor implements HttpInterceptor { const token = localStorage.getItem('loginToken'); let newCloneRequest; - if (req.url.includes('login')) { + // Usamos el objeto URL para ser quirúrgicos y detectar si el PATH es exactamente "/auth/login": + let isLoginPath = false; + try { + // req.url puede ser relativa o absoluta + const url = new URL(req.url, window.location.origin); + isLoginPath = url.pathname === '/auth/login'; + } catch (e) { + // Fallback por si la URL es inválida, aunque no debería ocurrir + isLoginPath = req.url.includes('/auth/login') && !req.url.includes('menu-raw'); + } + + if (isLoginPath) { newCloneRequest = req.clone({ setHeaders: { Authorization: `${token}`