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() {
}
}
<!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 - © Todos os direitos reservados - J Information Manager</span>
</div>
</div>
</div>
</body>
</html>
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.