AutorizadorInterceptor + JQuery

0 respostas
Cherubini

Olá pessoal,

estou com um problema na minha aplicação,eu tenho uma pagina jsp onde tenho as ações cadastrar,alterar e remover, antes de usar o jquery elas funcionavao perfeitas, pois só podia cadastrar,alterar e excluir quem tivesse @Role("admin"), agora com a chamada a jquery,todos os usuarios conseguem cadastrar,aterar e remover mesmo a anotação estando na assinatura do metodo.

segue código java:

@Component("usuario")
@InterceptedBy( { AutorizadorInterceptor.class, DaoInterceptor.class })
public class UsuarioLogic implements Criptografia {

	private final DaoFactory daoFactory;
	
	@Out
	private List<Usuario> usuarios;
	
	@Parameter
	@Out
	private Usuario usuario;

	public UsuarioLogic(DaoFactory daoFactory) {
		this.daoFactory = daoFactory;
	}	
	
	@Role("admin")
	public void editar(Usuario usuario) {
		this.usuario = this.daoFactory.getUsuarioDao().procura(usuario.getId());
	}

	public Usuario getUsuario() {
		return usuario;
	}

	@Override
	public String md5(Usuario usuario) {
		String retornaSenha = null;

		try {

			String senha = usuario.getPassword();
			MessageDigest md = MessageDigest.getInstance("MD5");

			md.update(senha.getBytes());
			BigInteger hash = new BigInteger(1, md.digest());
			retornaSenha = hash.toString(16);
			retornaSenha = retornaSenha.substring(7, retornaSenha.length());

		}

		catch (NoSuchAlgorithmException ns) {
			ns.printStackTrace();
		}

		return retornaSenha;
	}
	
	
	@Validate(params = { "usuario" })
	public void armazena(Usuario usuario) {
		this.daoFactory.beginTransaction();
		usuario.setPassword(md5(usuario));
		this.daoFactory.getUsuarioDao().atualiza(usuario);
		this.daoFactory.commit();
	}
	
	
	@Validate(params = { "usuario" })	
	public void alterar(Usuario usuario) {
		this.daoFactory.beginTransaction();
		usuario.setPassword(md5(usuario));
		this.daoFactory.getUsuarioDao().atualiza(usuario);
		this.daoFactory.commit();
	}

	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public String lista() {
		this.usuarios = this.daoFactory.getUsuarioDao().listaTudo();
		return "ok";
	}

	@Role("admin")
	public void remove(Usuario usuario) {
		usuario = this.daoFactory.getUsuarioDao().procura(usuario.getId());
		this.daoFactory.beginTransaction();
		this.daoFactory.getUsuarioDao().remove(usuario);
		this.daoFactory.commit();
	}	
	
	@Role("admin")
	public void cadastro() {
	}

}
código jsp:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
  <head>
    <title>Jim - J Information Manager</title>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <!--[if lte IE 6]>
      <link href="css/estilo_ie.css" rel="stylesheet" type="text/css">
    <![endif]-->
    <link href="css/estilo.css" rel="stylesheet" type="text/css">         
    <script type="text/javascript" src="javascript/jquery.js"></script>
    <script type="text/javascript" src="javascript/jquery-latest.js"></script>
    <script type="text/javascript" src="javascript/ui.core.js"></script>
    <script type="text/javascript" src="javascript/ui.draggable.js"></script>
    <script type="text/javascript" src="javascript/jim.js"></script>
    	
  </head>
  <body>
    <div id="geral">  
        
        <%@ include file="../submenu.jsp" %>
            
        <ul id="lista_produtos">                 
        </ul>
      </div>
      <div id="conteudo">
        <div id="produto_ativo"><p>Sistema</p></div>
		<div id="modulo_ativo"><p>Lista de Usuários</p></div>
		
		<%@ include file="../menu.jsp" %>
		
        <div id="modulo">
          <div id="modulo_top"></div>
          <div id="modulo_content">
            <ul id="lista_acoes">
              <li><a href="javascript:cadastro();" title="" class="acao_cadastrar">Cadastrar</a></li>                        
              <li><a href="#" title="" class="acao_ativar">Ativado</a></li>
              <li><a href="#" title="" class="acao_desativar">Desativado</a></li>
            </ul>
            <ajax:displayTag id="displayTagFrame" ajaxFlag="true">
            
            <display:table id="usuarios" name="${usuarios}" requestURI="usuario.lista.logic" class="tabela_registros" uid="row" pagesize="10">             
                	               	
				<c:if test="${row.ativo}">
					<display:column property="ativo" class="ativar" />
				</c:if>
				<c:if test="${!row.ativo}">
					<display:column property="ativo" class="desativar" />
				</c:if>
				    	           		
				<display:column property="id" class="text_center" />					
				<display:column property="login" class="text_center" />
				<display:column property="role" class="text_center" />
				<display:column title="Editar" >
					<center><a href="javascript:editar(${row.id});" id="remover">editar</a></center>
				</display:column>
				<display:column title="Remover" >
					<c:if test="${row.role ne('admin')}">					
						<c:if test="${usuario.id ne(row.id)}">
							<center><a href="usuario.remove.logic?usuario.id=${row.id}" id="remover">remover</a></center>
						</c:if>
					</c:if>
				</display:column>
			</display:table>     
			</ajax:displayTag>
			                  
          </div>
          <div id="modulo_bot"></div>
          
        </div>
        <div id="rodape">
        	<span>2008 - &copy; Todos os direitos reservados - J Information Manager</span>        
        </div>   
      </div>            
    </div>
  </body>
</html>
segue código jquery:
function cadastro(){	 
 		$("#modulo_content").hide();
 		$("#modulo_content").load("usuario.cadastro.logic");	
 		$("#modulo_content").hide().fadeIn("fast");
   
 }
 
 function editar(id){	
 	if(id != null) {
 
 		$("#modulo_content").hide();
 		$("#modulo_content").load("usuario.editar.logic?usuario.id=" + id);	
 		$("#modulo_content").hide().fadeIn("fast");
 		$("#modulo_content").css({"height": "260px"});
 		$("#menu_content").css({"height": "250px"});
 	}
   
 }

está funcionando a chamada via jquery, o unico problema é que o @Role do hibernate validation não está funcionando mais!Se alguem puder me ajudar!Desde jpa agradeço.

Criado 21 de outubro de 2008
Respostas 0
Participantes 1