Acegi JSF - no taglibrary exists for that namespace

0 respostas
Alys

Bom dia pessoal,

Estou começando um projeto em JSf 2.0 + Tomcat 6, que faz uma integração para controle de segurança com um projeto mais antigo, que utiliza Acegi Security. Já implementei a parte de login, e está funcionando corretamente. No meu teste, quando executo o trecho abaixo, recupero o login do meu usuário, sem problemas.

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String username = authentication.getName();

Porém, estou com um erro aqui ao tentar usar o Acegi JSF na minha aplicação (JSF 2.0). No meu arquivo index.xml (que faz o login) eu coloquei a declaração abaixo:

index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf" >
A biblioteca acegi-jsf-1.1.3.jar está no meu build-path.
ProjetoTeste
	|
	|__src
		|__<fontes>
	|__web
		|__index.xhtml
		|__WEB-INF
				|__web.xml
				|__faces-config.xml
				|__lib
					|__acegi-jsf-1.1.3.jar
					|__acegi-security-1.0.6.jar
					|__commons-logging.jar
					|__commons-logging-api.jar
					|__javax.faces-2.1.6.jar
					|__jdom-1.1.2.jar
					|__spring-2.5.jar
No index.xhtml, eu coloquei o código abaixo, para determinar um texto que só deve aparecer após o usuário concluir o login:
<acegi-jsf:authorize ifAnyGranted="ROLE_COMUM">
	<div class="box_msg">
		<p>Este texto  deve aparecer com o usuario logado</p>
	</div>
</acegi-jsf:authorize>

Porém, ao acessar a página, recebo o aviso:

Warning: This page calls for XML namespace http://sourceforge.net/projects/jsf-comp/acegijsf declared with prefix acegijsf but no taglibrary exists for that namespace.

E, obviamente, o texto que deveria ser restrito aparece livremente na tela. Eu tentei colocar a taglib acegijsf.tld dentro do meu WEB-INF e declará-la no meu web.xml, pra usar localmente, mas ele dá o mesmo erro

Warning: This page calls for XML namespace /WEb-INF/acegijsf declared with prefix acegijsf but no taglibrary exists for that namespace.

Alguém sabe como contornar este problema?

Obrigada.

Criado 29 de março de 2012
Respostas 0
Participantes 1