Controle de sessões para ajax
15/07/2014 10:20
1
Pessoal,

Em minha aplicação Grails, minha requisições ajax não estão respeitando o timeout de sessão da aplicação. Elas criam outras sessões sem ao menos solicitar as credenciais do usuário.

Existe alguma configuração que eu deva fazer, seja no jQuery ou na aplicação para que isso não ocorra?

Grato.
Tags: jQuery Grails Requisições Sessão Sessões timeout session request


1
Oi Pedro,

uma requisição Ajax é na realidade uma requisição HTTP como qualquer outra. Como está organizado seu projeto?


0
Kico,

É uma aplicação web simples, porém dividida em dois módulos. Um módulo público e outro restrito.
Existe requisições ajax em ambos os módulos, porém quando a sessão de um usuário é destruída por timeout, as requisições ajax que criam para si uma nova sessão porém sem autenticação.

Com isso, passa aos usuários a sensação de estarem logados no sistema quando executam alguma ação que envolve autenticação.

Estou utilizando o plugin Spring Security para autenticação de usuários.

Estou trabalhando com a ideia de utilizar o $.ajaxSetup() com implementação do beforeSend para validar a sessão. Conseguindo os resultados que pretendo, publico a solução.

Entretanto, quero compartilhar esta dificuldade que estou tendo afim de saber se alguém já passou por esse mesmo problema e se tiveram uma solução mais simples na qual estou pensando.

Grato.
15/07/2014 13:46


0
Pedro,

não sei se o que vou dizer vai te ajudar, mas vai lá! :)

O Spring Security tem um esquema especial para fazer autenticação por ajax. Ele é bastante usado quando nós estamos criando aplicações do tipo single page application. Aí monta-se a seção e tudo mais. Já usou este ecurso?


0
Kico,

Não conheço, como estou iniciando a manutenção desta aplicação, não sei te informar se está implementado essa função. Vou pesquisar.

Com o beforeSend, não tive sucesso.

Porém, nesta aplicação, há um método que valida se o usuário está logado. Fiz um simples if para validar meu redirecionamento de página mas o redirect não está redirecionando para página informada. Já passaste por este problema?

* A ação acima é recorrente de um ajax que retorna uma lista de sugestões na busca.

Grato.
15/07/2014 18:08


0
Solução para o problema que vinha enfrentando com as requisições em ajax.

;(function (window, document, undefined) {
'use strict';
var validaSessaoUsuario = (function(){
var exports = {}
var _ajaxErrors = function () {
$( document ).ajaxError(function( event, jqxhr, settings, exception ) {
switch (jqxhr.status) {
case 401:
window.location = url("/login/auth?tatus=401");
}
});
};
exports.init = function () {
_ajaxErrors();
};
return exports;
})();
window.validaSessaoUsuario = validaSessaoUsuario;
validaSessaoUsuario.init();
})(window, document);
23/07/2014 10:02


0

;(function (window, document, undefined) {
'use strict';
var validaSessaoUsuario = (function(){
var exports = {}
var _ajaxErrors = function () {
$( document ).ajaxError(function( event, jqxhr, settings, exception ) {
switch (jqxhr.status) {
case 401:
window.location = url("/login/auth?tatus=401");
}
});
};
exports.init = function () {
_ajaxErrors();
};
return exports;
})();
window.validaSessaoUsuario = validaSessaoUsuario;
validaSessaoUsuario.init();
})(window, document);
23/07/2014 10:03



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto