[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Sérios problemas do Firefox com Autenticação/Autorização  XML
Forum Index -> Comentários Gerais Go to Page: Previous  1, 2, 3, 4 Next 
Author Message
rodrigo.avila


[Avatar]

Joined: 07/08/2007 13:47:17
Messages: 140
Location: Brochier, RS | http://osm.org/go/M5t3EG8U
Offline

trgpwild wrote:
Este problema acontece apenas no Firefox, não sei pq, enquanto que no I.E. funciona q eh uma blz. 


1) Este problema acontece no Firefox, ou em um firefox?
2) Se testar em outro computador, ocorre o mesmo?
3) Já tentou pegar um computador sem Firefox, instalar o Firefox nele do zero e testar?


Rodrigo de Avila
http://www.avila.net.br
[WWW] [MSN]
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

rodrigo.avila wrote:

1) Este problema acontece no Firefox, ou em um firefox?
2) Se testar em outro computador, ocorre o mesmo?
3) Já tentou pegar um computador sem Firefox, instalar o Firefox nele do zero e testar?
 


Sim, eu já havia feito esse mesmo teste em casa(Ubuntu 7.04 - Firefox 2.0.0.10), no meu micro do trampo (WindowsXP - Firefox 2.0.0.12), e no do meu coordenador de projeto (WindowsXP - Firefox 2.0.0.9) e todos aconteceram o mesmo problema e nunca dando problema com IE nas máquinas q o tinham instalado.
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

IceW0lf wrote:
Cara,

Dá uma olhada no FF onde vc diz se deve manter cookies ou não na máquina...

FERRAMENTAS... OPÇÕES .... PRIVACIDADE

e verifique se encontra-se igual a imagem...

 


As configurações do meu Firefox, estão exatamente iguais...
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Com certeza é algum detalhe ai...

EU estou desenvolvendo um sistema onde eu só uso o FF pra testes etc... após tela pronta eu debugo os outros navegadores e nunca tive nada parecido...

Tem que ser algo relativo a configurações, permissões etc... mas nada relativo sequer a hipótese de que o authorization ou authentication do menta dê falhas no FF.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

Você gostaria de olhar meu ApplicationManager? e minha LoginAction?
Eu tenho quase total certeza de que estão perfeitas... ou melhor... quer que eu te mande o projeto inteiro pra vc testar ae?
Eu apreciaria muito sua ajuda IceWolf...
rodrigo.avila


[Avatar]

Joined: 07/08/2007 13:47:17
Messages: 140
Location: Brochier, RS | http://osm.org/go/M5t3EG8U
Offline

Deixa eu ver o ApplicationManager, o LoginAction, e a action/jsp que você fica dando F5...

Rodrigo de Avila
http://www.avila.net.br
[WWW] [MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

trgpwild wrote:
Você gostaria de olhar meu ApplicationManager? e minha LoginAction?
Eu tenho quase total certeza de que estão perfeitas... ou melhor... quer que eu te mande o projeto inteiro pra vc testar ae?
Eu apreciaria muito sua ajuda IceWolf... 


Tentativa numero 5: Isso não tem nada haver com o Mentawai.

Cara, se vc ficar apertando direto o F5 eu não ficarei espantado se o firefox perder o cookie.

Já experimentou cagar pra isso? É bug do FF, o que eu e vc podemos fazer?

Por lógica básica:

IF problema ocorre no FF AND proglema não ocorre no IE THEN proglema é do FF

Se vc fizer um servlet sem nenhum framework o problema vai persistir. No final vc terá que debugar a API de servlets para descobrir por que a session está se perdendo.

Estou curioso, pois não acharia que o FF tem um bug desses, mas se tu sai apertando o F5 que nem um louco tudo é possível.

Sergio Oliveira

trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

saoj wrote:

trgpwild wrote:
Você gostaria de olhar meu ApplicationManager? e minha LoginAction?
Eu tenho quase total certeza de que estão perfeitas... ou melhor... quer que eu te mande o projeto inteiro pra vc testar ae?
Eu apreciaria muito sua ajuda IceWolf... 


Tentativa numero 5: Isso não tem nada haver com o Mentawai.

Cara, se vc ficar apertando direto o F5 eu não ficarei espantado se o firefox perder o cookie.

Já experimentou cagar pra isso? É bug do FF, o que eu e vc podemos fazer?

Por lógica básica:

IF problema ocorre no FF AND proglema não ocorre no IE THEN proglema é do FF

 


Em termos, eu até concordo com você, mas a aplicação depende do bom funcionamento do browser... e o detalhe é que eu naum preciso ficar apertando várias vezes o F5 para perder a sessão, basta uma só vez. Parece que de vez em quando o FF simplesmente não guarda a variável na sessão...
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

rodrigo.avila wrote:
Deixa eu ver o ApplicationManager, o LoginAction, e a action/jsp que você fica dando F5... 


jsp:
Code:
 <%@ include file="/WEB-INF/jsp/system/locale/lang-cookies.jsp" %>
 <%@ taglib prefix="mtw" uri="/WEB-INF/lib/mentawai.jar"%>
 <mtw:noCache/>
 <mtw:requiresAuthentication redir="true" />
 <mtw:requiresAuthorization groups="admins,users" />
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>ExtjsMentawai</title>
 <!-- YUI utilities and Ext: -->
 <script type="text/javascript" src="lib/ext/adapter/yui/yui-utilities.js"></script>
 <script type="text/javascript" src="lib/ext/adapter/yui/ext-yui-adapter.js"></script>
 <script type="text/javascript" src="lib/ext/ext-all-debug.js"></script>
 <mtw:isLocale value="pt"><script type="text/javascript" src="lib/ext/source/locale/ext-lang-pt_BR.js"></script></mtw:isLocale>
 <mtw:isLocale value="en"><script type="text/javascript" src="lib/ext/source/locale/ext-lang-en.js"></script></mtw:isLocale>
 <script type="text/javascript" src="lib/system/pessoa/listaPessoa.js"></script>
 <script type="text/javascript" src="lib/system/pessoa/cadPessoa.js"></script>
 <script type="text/javascript" src="lib/system/login/listaLogin.js"></script>
 <script type="text/javascript" src="lib/system/login/cadLogin.js"></script>
 <!-- Ext stylesheets: -->
 <link rel="stylesheet" type="text/css" href="lib/ext/resources/css/ext-all.css">
 <link rel="stylesheet" type="text/css" href="lib/ext/resources/css/xtheme-green.css">
 </head>
 <noscript>
 Este sistema necessita de javascript ativado...
 </noscript>
 <body>
 <mtw:useI18N/>
 
 <script language='javascript'>
 
 var LOGIN = '<mtw:i18n key="LOGIN"/>';
 var LOGINS = '<mtw:i18n key="LOGINS"/>';
 var PASS = '<mtw:i18n key="PASS"/>';
 var GROUP = '<mtw:i18n key="GROUP"/>';
 var REQUIRED_LOGIN = '<mtw:i18n key="REQUIRED_LOGIN"/>';
 var REQUIRED_PASS = '<mtw:i18n key="REQUIRED_PASS"/>';
 var REQUIRED_GROUP = '<mtw:i18n key="REQUIRED_GROUP"/>';
 
 var PEOPLE = '<mtw:i18n key="PEOPLE"/>';
 var PEOPLE_SING = '<mtw:i18n key="PEOPLE_SING"/>';
 var NAME = '<mtw:i18n key="NAME"/>';
 var BORN_DATE = '<mtw:i18n key="BORN_DATE"/>';
 var FONE = '<mtw:i18n key="FONE"/>';
 var EMAIL = '<mtw:i18n key="EMAIL"/>';
 var ADDRESS = '<mtw:i18n key="ADDRESS"/>';
 var DESCRIPTION = '<mtw:i18n key="DESCRIPTION"/>';
 
 var REQUIRED_NAME = '<mtw:i18n key="REQUIRED_NAME"/>';
 var REQUIRED_BORN_DATE = '<mtw:i18n key="REQUIRED_BORN_DATE"/>';
 var REQUIRED_FONE = '<mtw:i18n key="REQUIRED_FONE"/>';
 var REQUIRED_EMAIL = '<mtw:i18n key="REQUIRED_EMAIL"/>';
 var REQUIRED_ADDRESS = '<mtw:i18n key="REQUIRED_ADDRESS"/>';
 var REQUIRED_DESCRIPTION = '<mtw:i18n key="REQUIRED_DESCRIPTION"/>';
 
 var BT_INSERT = '<mtw:i18n key="BT_INSERT"/>';
 var BT_EDIT = '<mtw:i18n key="BT_EDIT"/>';
 var BT_DELETE = '<mtw:i18n key="BT_DELETE"/>';
 var BT_BACK = '<mtw:i18n key="BT_BACK"/>';
 var BT_RECORD = '<mtw:i18n key="BT_RECORD"/>';
 
 var ARE_YOU_SURE = '<mtw:i18n key="ARE_YOU_SURE"/>';
 var ERROR = '<mtw:i18n key="ERROR"/>';
 var ATENTION = '<mtw:i18n key="ATENTION"/>';
 var ALERT = '<mtw:i18n key="ALERT"/>';
 var NONE_ITEM_SELECTED = '<mtw:i18n key="NONE_ITEM_SELECTED"/>';
 var PLEASE_TRY_AGAIN_LATER = '<mtw:i18n key="PLEASE_TRY_AGAIN_LATER"/>';
 var MANAGERS = '<mtw:i18n key="MANAGERS"/>';
 var USERS = '<mtw:i18n key="USERS"/>';
 
 //base de informações fixas (regra de negócio)
 Ext.namespace('Ext.extjsMentawai');
 
 Ext.extjsMentawai.groups = [
 ["admins", MANAGERS],
 ["users", USERS]
 ];
 
 Ext.onReady(function(){
 	
 	Ext.get('box').dom.style.visibility="hidden";//Div externa ao formulário invisível
 
     Ext.QuickTips.init();
 
     var menu = new Ext.menu.Menu({//1º menu da esquerda para direita
         id: 'MenuPrincipal'
     });
     
     menu.add(
 
 		mAlterarDados = new Ext.menu.Item({text: PEOPLE, handler: onAlterarDadosPessoa}),
 		mLogins = new Ext.menu.Item({text: LOGINS, handler: onListaLogin})
     
     );
 
     var tb = new Ext.Toolbar('toolbar');//criação de uma toolbar na div de id='toolbar'
 
     tb.addButton({
             text:'ExtjsMentawai',
             menu: menu  //associando o objeto menu
     });
 
     tb.addButton({
 		text: 'Logout...',
 		enableToggle: true,
 		toggleHandler: onLogOut
 	});
 
 	//funções do menu...
 	function onAlterarDadosPessoa(){
 		preparaContainer();
 		listaPessoa('form-container');
 	}
 
     function onListaLogin(){
 		preparaContainer();
 		listaLogin('form-container');
     }
 
 	function onLogOut(){
     	Ext.MessageBox.confirm(ATENTION, ARE_YOU_SURE, function(btn){
 			if (btn=='yes') document.location.href='logout.shk';
     	});
 	}
 	
 	function preparaContainer() {
 
 		limpaGridLogin();
 		limpaGridPessoa();
 
 		limpaBtLogin();
 		limpaBtPessoa();
 
 		Ext.get('box').dom.style.visibility="visible";
 
 	}
 	
 });
 </script>
 
 <table width="100%">
 	
 	<tr>
 		<td colspan="2">
 			<div id="container">
 				<div id="toolbar"></div>
 			</div>
 		</td>
 	</tr>
 	
 	<tr>
 		<td>
 			<a href="interface.shk?loc=pt">
 				<img src="lib/images/brazil.gif" border="0" width="20" height="13">
 			</a>
 			<a href="interface.shk?loc=en">
 				<img src="lib/images/usa.gif" width="20" height="13" border="0">
 			</a>
 		</td>
 		<td>
 			<a href="http://www.mentaframework.org">
 				<img align="right" src="lib/images/menta_small.png">
 			</a>
 	
 			<a href="http://www.extjs.com">
 				<img align="right" src="lib/images/ext_small.png">
 			</a>
 		</td>
 	</tr>
 	
 	<tr>
 		<td colspan="2">	
 			<div id="box" style="LEFT: 350px; POSITION: relative; TOP: 10px; width:370px; visibility: hidden">
 				<div id="form-container"></div>
 			</div>
 		</td>
 	</tr>
 	
 </table>
 
 </body>
 </html>
 


ApplicationManager:
Code:
 package org.extjsmentawai.configure;
 
 import java.util.Locale;
 
 import org.extjsmentawai.controller.LoginAction;
 import org.extjsmentawai.controller.PessoaAction;
 import org.extjsmentawai.controller.logon.LogonAction;
 import org.extjsmentawai.models.bean.Login;
 import org.extjsmentawai.models.bean.Pessoa;
 import org.extjsmentawai.models.dao.LoginDAO;
 import org.extjsmentawai.models.dao.PessoaDAO;
 import org.extjsmentawai.models.dao.PessoaTesteDAO;
 import org.extjsmentawai.utils.converter.PessoaConversionFilter;
 import org.extjsmentawai.utils.renderer.BeanCollectionAjaxRenderer;
 import org.extjsmentawai.utils.renderer.HtmlAjaxRenderer;
 import org.hibernate.Session;
 import org.hibernate.cfg.AnnotationConfiguration;
 import org.mentawai.action.LogoutAction;
 import org.mentawai.action.SuccessAction;
 import org.mentawai.ajax.AjaxConsequence;
 import org.mentawai.authorization.AuthorizationManager;
 import org.mentawai.authorization.Group;
 import org.mentawai.authorization.Permission;
 import org.mentawai.core.Context;
 import org.mentawai.filter.AuthenticationFilter;
 import org.mentawai.filter.AuthorizationFilter;
 import org.mentawai.filter.DIFilter;
 import org.mentawai.filter.HibernateAnnotationFilter;
 import org.mentawai.filter.InjectionFilter;
 import org.mentawai.filter.IoCFilter;
 import org.mentawai.filter.OutjectionFilter;
 import org.mentawai.filter.RedirectAfterLoginFilter;
 import org.mentawai.filter.VOFilter;
 import org.mentawai.i18n.LocaleManager;
 
 public class ApplicationManager extends org.mentawai.core.ApplicationManager {
 
 	public void init(Context context) {
 		
         Group admins = new Group("admins");
         admins.addPermission("write").addPermission("delete");
         AuthorizationManager.addGroup(admins);
         
         Group users = new Group("users");
         users.addPermission("read");
         AuthorizationManager.addGroup(users);
 
 		filter(new AuthenticationFilter());
 
 		filter(new HibernateAnnotationFilter((AnnotationConfiguration)new AnnotationConfiguration().configure()));
 		
 		HibernateAnnotationFilter Filter = new HibernateAnnotationFilter((AnnotationConfiguration)new AnnotationConfiguration().configure("hibernate_teste.cfg.xml"));
 		Filter.setKey("sessionTeste");
 		filter(Filter);
 
 		ioc("loginDAO", LoginDAO.class);
 		ioc("pessoaDAO", PessoaDAO.class);
 		ioc("pessoaTesteDAO", PessoaTesteDAO.class);
 		
 		filter(new IoCFilter());
 		
 		di("sessionTeste", Session.class);
 		di("session", Session.class);
 
 		filter(new DIFilter());
 
 		filter(new InjectionFilter());
 		filter(new OutjectionFilter());
 
 	}
 
 	public void loadActions() {
 		
 		String[] login = {"id", "login", "group"};
 		
 		String[] pessoa = {"id", "nome", "dataNascimentoStr", "descricao", "endereco", "telefone", "email"};
 
 		on(AuthenticationFilter.LOGIN, redir("/logon.shk"));
         on(AuthorizationFilter.ACCESSDENIED, redir("/logon.shk?denied=true"));
         
 		action("logon", LogonAction.class)
 			.on(SUCCESS, redir("/interface.shk"))
 			.on(ERROR, fwd("/WEB-INF/jsp/system/logon.jsp"))
 			.filter(new RedirectAfterLoginFilter())
 			.on(RedirectAfterLoginFilter.REDIR, redir())
 			.filter(new VOFilter(Login.class, "login"));
 		
 		action("logout", LogoutAction.class).on(SUCCESS, redir("/index.jsp"));
 
 		action("interface", SuccessAction.class).on(SUCCESS, fwd("/WEB-INF/jsp/system/interface.jsp"))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("write"),
 											new Permission("delete")));
 
 		action("pessoa", PessoaAction.class)
 			.on(SUCCESS, new AjaxConsequence(new BeanCollectionAjaxRenderer("raiz", "pessoa", pessoa, null, "ISO-8859-1")))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("write"),
 											new Permission("delete")))
 			.filter(new VOFilter(Pessoa.class, "pessoa"));
 
 		action("pessoa", PessoaAction.class, "lista")
 			.on(SUCCESS, new AjaxConsequence(new BeanCollectionAjaxRenderer("raiz", "pessoa", pessoa, null, "ISO-8859-1")))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("write"),
 											new Permission("delete")));
 
 		action("pessoa", PessoaAction.class, "save")
         	.on(SUCCESS, new AjaxConsequence(new HtmlAjaxRenderer("SUCCESS")))
         	.on(ERROR, new AjaxConsequence(new HtmlAjaxRenderer("ERROR")))
         	.filter(new AuthorizationFilter(new Permission("write")))
 			.filter(new PessoaConversionFilter())
         	.filter(new VOFilter(Login.class, "login"))
 			.filter(new VOFilter(Pessoa.class, "pessoa"));
 
 		action("pessoa", PessoaAction.class, "delete")
 			.on(SUCCESS, new AjaxConsequence(new HtmlAjaxRenderer("SUCCESS")))
 			.on(ERROR, new AjaxConsequence(new HtmlAjaxRenderer("ERROR")))
 			.filter(new AuthorizationFilter(new Permission("delete")))
 			.filter(new VOFilter(Pessoa.class, "pessoa"));
 		
 
 		action("login", LoginAction.class)
 			.on(SUCCESS, new AjaxConsequence(new BeanCollectionAjaxRenderer("raiz", "item", login, null, "ISO-8859-1")))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("write"),
 											new Permission("delete")))
 			.filter(new VOFilter(Login.class, "login"));
 		
 		action("login", LoginAction.class,"lista")
 			.on(SUCCESS, new AjaxConsequence(new BeanCollectionAjaxRenderer("raiz", "item", login, null, "ISO-8859-1")))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("write"),
 											new Permission("delete")));
 
 		action("login", LoginAction.class, "save")
 			.on(SUCCESS, new AjaxConsequence(new HtmlAjaxRenderer("SUCCESS")))
 			.on(ERROR, new AjaxConsequence(new HtmlAjaxRenderer("ERROR")))
 			.filter(new AuthorizationFilter(new Permission("write")))
 			.filter(new VOFilter(Login.class, "login"));
 
 		action("login", LoginAction.class, "delete")
 			.on(SUCCESS, new AjaxConsequence(new HtmlAjaxRenderer("SUCCESS")))
 			.on(ERROR, new AjaxConsequence(new HtmlAjaxRenderer("ERROR")))
 			.filter(new AuthorizationFilter(new Permission("read"),
 											new Permission("delete")))
 			.filter(new VOFilter(Login.class, "login"));
 		
 	}
 
 	public void loadLocales() {
 		LocaleManager.add(new Locale("pt", "BR"));
 		LocaleManager.add(new Locale("en", "US"));
 	}
 
 }
 


LogonAction:
Code:
 package org.extjsmentawai.controller.logon;
 
 import org.extjsmentawai.models.bean.Login;
 import org.extjsmentawai.models.dao.LoginDAO;
 import org.mentawai.action.BaseLoginAction;
 
 public class LogonAction extends BaseLoginAction {
 	
 	private LoginDAO loginDAO;//IoC
 
 	private Login login;//param
 	
 	public String execute() throws Exception {
 
 		if (login.getLogin() == null || login.getLogin().trim().equals("")) {
 			return ERROR;
 		}
 		
 		if (login.getSenha() == null || login.getSenha().trim().equals("")) {
 			return ERROR;
 		}
 		
 		login = loginDAO.getLogin(login);
 		
 		if (login != null) {
 			
 			setUserSession(login);
 			setUserGroup(login.getGroup());
 			
 			return SUCCESS;
 				
 		} else {
 			
 			return ERROR;
 			
 		}
 		
 	}
 	
 }
 


IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Cara,


Dei 100000000000000000000 de F5 numa aplicação aki e olha que eu utilizo valição sinistra aki.....

Tenho permissões de grupos como as utilizadas nos servidores WINDOWS, LINUX, ou seja, permissões delegadas. Se o usuário tem algo NEGADO que para o grupo que ele faz parte é permitido ele estará negado.


Então tanto minhas tags:

<mtw:requiresAuthorization permission="Create" />
ou mesmo
<mtw:requiresAuthentication />

Portanto NÃO É BUG, pois eu teria o mesmo problema.


Leiber Wallace
Voixy ::: Soluções em Telecomunicações
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

Algum problema com os codigos pessoal???
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Cara,


Vou fazer melhor que isso!!!


Vou criar uma aplicação simples aki com permissões BRUTAS e vou testar até o últero do menta aki... se eu falar que não é... NÃO È....


Leiber Wallace
Voixy ::: Soluções em Telecomunicações
trgpwild



Joined: 07/02/2008 20:55:55
Messages: 65
Offline

Naum seria melhor vc testar a minha aplicação teste???
rodrigo.avila


[Avatar]

Joined: 07/08/2007 13:47:17
Messages: 140
Location: Brochier, RS | http://osm.org/go/M5t3EG8U
Offline

Já tentou simplificar o teu teste? Tipo, deixar a estutura parecida, mas sem os javascripts?

<editado>IceW0lf, tenho certeza que o problema não é no menta. Mas tem alguma coisa errada por aqui...</editado>

Rodrigo de Avila
http://www.avila.net.br
[WWW] [MSN]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Vamos lá fiz um teste com a aplicação que o menta oferece e com a eu estou desenvolvendo e está funcionando perfeitinho inclusive no FF....

Acho que é incompatibilidade entre seus Javascripts e o FF. já tentou debugar isso ????

Sujestão:

Faça um teste com a aplicação simples que o mentawai utiliza... segue o link:
http://www.mentaframework.org/examples/Authorization.war

Para melhor resposta pegue o JAR mais novo e adicione na aplicação e teste, vc verá que vai funcionar perfeitinho.

Abraço.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
 
Forum Index -> Comentários Gerais Go to Page: Previous  1, 2, 3, 4 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team