Repository navigation
v3.4.1
🚀 Archbase Framework v3.4.1
archbase 3.4.1 — o filtro de empresa passa a ser opcional
Patch de uma correção só. Aplicações sem CompanyPersistenceEntityBase podem usar
X-COMPANY-ID. Onde o filtro existe, nada muda. Nenhuma mudança de API pública.
X-COMPANY-ID derrubava toda requisição com 401. O ArchbaseTenantServiceAspect
liga o companyFilter do Hibernate em toda chamada de repositório com empresa no
contexto, mas o filtro só é declarado em CompanyPersistenceEntityBase. Sem entidade
que estenda essa base, ele não existe na SessionFactory e enableFilter lançava
UnknownFilterException — dentro do filtro JWT, na busca do usuário. Token válido,
resposta 401. Reproduzido no VendaX B2B.
O aspecto agora confere getDefinedFilterNames() antes de ligar. Sem o filtro,
registra em debug e segue; a empresa continua no ArchbaseTenantContext para a
aplicação decidir a empresa ativa por conta própria.
O filtro segue sem ser desligado ao fim da chamada, de propósito: desligar no
finally deixaria consultas posteriores na mesma sessão sem filtro. O parâmetro é
reescrito a cada chamada, então troca de empresa é respeitada.
ArchbaseTenantServiceAspectTest roda contra uma SessionFactory real (H2), com e
sem entidade de empresa. Sem a guarda, o caso sem entidade falha com a mesma
UnknownFilterException do relato.
Instalação
<dependency>
<groupId>br.com.archbase</groupId>
<artifactId>archbase-starter</artifactId>
<version>3.4.1</version>
</dependency>Documentação
Full Changelog: v3.4.0...v3.4.1