quinta-feira, 1 de outubro de 2015

Configurando Security Logging no Pentaho

Background


Quando um processo de autenticação e autorização não está se comportando como você gostaria que estivesse, uma das primeiras ações a se fazer é habilitar o debug para as classes relacionadas a segurança.

Algumas vezes também, preciso liberar o acesso anonymous ou dar alguma permissão especial a algum recurso via spring-security. Para isso você precisa configurar o arquivo applicationContext-spring-security.xml e informar quais URL's dos recursos serão configuradas.

Então, para descobrir quais URL's são necessárias configurar para alcançar seu objetivo é necessário habilitar o log security, que permitirá identificá-las.

Referência


Passos


1. Faça uma cópia do arquivo biserver-ce\tomcat\webapps\pentaho\WEB-INF\classes\log4j.xml

2. Abra o arquivo log4j.xml e remova todos parâmetros Threshold que encontrar nos <appender>
( Como por exemplo, PENTAHOFILE e PENTAHOCONSOLE )

3. Ainda no mesmo arquivo, procure pela tag <root> e adicione ou mude a tag <priority> para:

<root>
 <priority value="WARN,ERROR,FATAL" />
 <appender-ref ref="PENTAHOCONSOLE"/>
 <appender-ref ref="PENTAHOFILE"/>
</root>
4. Procure dentro do mesmo arquivo pelas classes abaixo. Caso elas existam, configura a tag <priority> para DEBUG. Caso não existam, adicione as mesma antes da tag <root>. Elas irão habilitar o log das classes relacionadas a segurança.

<!-- all Spring Security classes will be set to DEBUG -->
<category name="org.springframework.security">
  <priority value="DEBUG" />
</category>

<!-- all Pentaho security-related classes will be set to DEBUG -->
<category name="org.pentaho.platform.engine.security">
  <priority value="DEBUG" />
</category>

<category name="org.pentaho.platform.plugin.services.security">
  <priority value="DEBUG" />
</category>
5. Salve e feche o arquivo log4j.

6. Faça uma cópia e abra o arquivo biserver-ce\pentaho-solutions\system\applicationContext-spring-security-<back-end>.xml onde <back-end> é um dos: memory, jdbc, ldap, jackrabbit (5.x) ou hibernate (4.x). Adicione a propriedade hideUserNotFoundExceptions com o valor false no bean da classe DaoAuthenticationProvider.
<bean class="org.springframework.security.providers.dao.DaoAuthenticationProvider">
   (...)

   <!-- other properties/constructor-args not shown -->
   <property name="hideUserNotFoundExceptions" value="false" />

   (...)
</bean>

7. Salve o arquivo e reinicie o BI Server. Ao iniciar você já começará a ver os logs no console.


Agora é só buscar pela informação que precisa.

Nenhum comentário: