powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring rest api redirect if session timeout
25 сообщений из 66, страница 2 из 3
Spring rest api redirect if session timeout
    #39125142
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1когда сессия закочилась делать что то ? но если у нас api rest - то это только js на клиенте
я вторым посто спросил - что такое у тебя api rest.
Я на своём сайте вызываю по AJAX сервлет
если только JS значит томкат и БД не вызываем?


вот простой пример :

Код: java
1.
2.
3.
4.
5.
6.
7.
@RestController
public class CsrfController {

    @RequestMapping(value = "/csrf", method = RequestMethod.GET)
    public CsrfToken csrf(CsrfToken token ) {
        return token;
    }



вернет json токен - для последующего использования в post запросах для rest api


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$(".box").click(function(e) {

        $.get("/csrf", function(data) {
            _csrf = data.token;
           ....

        });
    });


но если сессия протухла 0 то по ссылке "/csrf" - будет редирект на страницу логин ..но пользователь этого не увидит .

просто ссылка работать не будет ...

самый простой пример:)
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125144
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1когда сессия закочилась делать
ответь на вопрос как она у тебя заканчивается )))) LOL

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	 version="3.1">
    <session-config>
        <session-timeout>
          30
        </session-timeout>
    </session-config>



я авторизовался - заполнил форму с данными у ушел на обед чай пить ...

прошло 30 минут и сессия протухла )

пришел я с обеда -нажал на кнопку отправить и ничего не произошло ...
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125148
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
отлично.
- почему не поставить сессию 8 часов т.к. это корпоратив а не сайт-визитка
- /csrf это что? Поставь фильтр на него
- способ авторизации? Томкат?
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125149
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- почему не поставить сессию 8 часов т.к. это корпоратив а не сайт-визитка

Только собрался тоже самое написать.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125190
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
единообразно:
1) параметр
2) перехват в веб сервере. Что в апаче, что в томкате.
Если перехват, то
responseRedirect даст на клиента картинку:
со статусом 302 на Location: куды угодно
и клиент туда перейдёт без всякой задержки
.....
Как то так.
Удачи!
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125203
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
я реализовал проблему тс с помощью. .....
ты уже смеёшься....
ws. на сервере ловится конец сессии и на клиента шлется команда типа перехода куда надо.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125212
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
и как всегда, пример-демка по сабжу с ws такая большая, что ты его никогда не приводил).
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125219
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
этот кусочек я приведу счас:)
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125262
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ловим конец сессии на сервере и отправляем на клиента
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
package Filter;

import com.Singleton;
import java.util.Collection;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.java_websocket.WebSocket;

public class ServletSessionListener implements HttpSessionListener {


    public static WebSocket webSocket;

    @Override
    public void sessionCreated(HttpSessionEvent se) {

        System.out.println("\nсессия создана " + se.getSession().getId() + se.getSession().isNew());
        System.out.println("число сессий ws " + Singleton.session_list.size());
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("\n================ sessionDestroyed ======================");

//определяем для какой сессии/какому клиенту надо отправить
        Collection<WebSocket> conn = Singleton.getCon();
        synchronized (conn) {
            for (WebSocket c : conn) {
                if (c.getSession().equals(se.getSession().getId())) {
                    System.out.println("сессия закрыта " + c.getRemoteSocketAddress());

                    c.send("xxx|/mo/page00.jsp"); //xxx - команда(имя функции на js)  /mo/page00.jsp - то куда перейти(страница ввода логина/пароля
                    c.close(4000);   //задаём код закрытия 
                } else {
                    System.out.println("сессия открытая " + c.getRemoteSocketAddress());
                }
            }
        }
        Singleton.session_list.remove(se.getSession().getId());
        System.out.println("список сессий " + Singleton.session_list.size());
    }

}



команда/функция на js
Код: javascript
1.
2.
3.
function xxx(p) {
        location.href = p;
    }


"обработчик" ws на клиенте (браузер)
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
<script>
    var con;
    var rg = /^([a-z_0-9.]{1,})\|([\s\S]*)/;
    $(document).ready(function () {
        con = new WebSocket("wss://<%=Singleton.getServerWSS() + ":" + Singleton.getPortWSS()%>");
        con.binaryType = "arraybuffer";
        con.onopen = function (e) {
//"авторизация"/"привязка" ws к сессии
            con.send('auth|<%=request.getSession().getAttribute("token")%>~<%= session.getId()%>');
        };
        con.onmessage = function (response) {
            if (typeof (response.data) === 'string') {
                var r = rg.exec(response.data);
                try {
//"рефлексия"   - 2 варианта
                    if (r[1].includes('.')) {
                        var d = r[1].split('.');
                        window[d[0]][d[1]](r[2]);
                    } else {
                        window[r[1]](r[2]);
                    }
                } catch (er) {
                    console.log('ошибка ' + er.stack);
                    console.log('вызов ' + r[1]);
                    console.trace();

                }
            } else {
// для приёма бинарных данных с сервера - заготовка
//                var uInt8Array = new Uint8Array(response.data); 
//                var arrayBuffer = response.data;
//                var bytes = new Uint8Array(arrayBuffer);
//                console.log(bytes);

            }
        };
        con.onclose = function (event) {
            if (event.wasClean) {
                console.log('Соединение закрыто чисто');
            } else {
                console.log('закрытие');
            }
            console.log('Код: ' + event.code + ' причина: ' + event.reason);
        };
        con.onerror = function (error) {
            console.log("Ошибка wss " + error.message);
        };
    });

...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125274
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
"обработчик" ws на клиенте (браузер)" поражает)).
Это вместо того чтобы дать с сервера команду XXX.Redirect?
Тогда по стандарту HTTP по коду перехода ослик переправит.
У тебя же на экране будут ещё часики и т.д. и т.п.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125277
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
т.е. вместо XXX.Redirect(url)
сделано куча кода с итогом
Осёл.location.href = url;
....
Удачи!
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125293
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
"обработчик" ws на клиенте (браузер)" поражает)).
Это вместо того чтобы дать с сервера команду XXX.Redirect?
Тогда по стандарту HTTP по коду перехода ослик переправит.
У тебя же на экране будут ещё часики и т.д. и т.п.
если ты думаешь , что обработчик ws обрабытывает только эту команду, ты ошибаешься
это один обработчик на все команды приходящие с сервера.
а таких для одной страницы приближается к 30. так что это не куча кода...
у меня корпоративное решение и городить кросбраузерность мне не к чему, в хроме работает без проблем.
если под ослика - и для него конкретно можно сделать .
у меня, если нет действий юзера , по окончании сессии браузер автоматически перейдет на страницу входа, закрыв тем самым страницу на которой работал юзер.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125298
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это для тебя куча кода....
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  con.onmessage = function (response) {
            if (typeof (response.data) === 'string') {
                var r = rg.exec(response.data);
                try {
//"рефлексия"   - 2 варианта
                    if (r[1].includes('.')) {
                        var d = r[1].split('.');
                        window[d[0]][d[1]](r[2]);
                    } else {
                        window[r[1]](r[2]);
                    }
                } catch (er) {
                    console.log('ошибка ' + er.stack);
                    console.log('вызов ' + r[1]);
                    console.trace();

                }

...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125311
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе , раз браузер "сам" переходит - то можно сделать сохранение всего, что нужно в LacalStorage, и при входе юзера восстановить всё состояние страницы.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125316
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Я к тому что можно вообще страницу не загружать с твоим ws кодом. А использовать ответ https://ru.m.wikipedia.org/wiki/Список_кодов_состояния_HTTP.
Понятно что тебе так удобнее и ты привык.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125320
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяв принципе , раз браузер "сам" переходит - то можно сделать сохранение всего, что нужно в LacalStorage, и при входе юзера восстановить всё состояние страницы.
Угу. Сам 30 минут поставил, а теперь сохраняй на 31 ой)
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125357
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
Я к тому что можно вообще страницу не загружать с твоим ws кодом. А использовать ответ https://ru.m.wikipedia.org/wiki/Список_кодов_состояния_HTTP.
Понятно что тебе так удобнее и ты привык.
ну для этого надо обратиться к серверу....
у меня к серверу нет обращения , сервер сам даёт команду перейти

авторУгу. Сам 30 минут поставил, а теперь сохраняй на 31 ой)
не понял...
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125371
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяне понял...тайм аут сервера ставь больше...и сабж потеряет смысл.
Кто-то любит чтобы сервер командовал моими окнами на рабочем столе.
Кто не любит.
У меня вон, вообще неделями юзвери комп не выключают. Я тоже захочу чтобы связь всегда была и ты не делал дурацких окон - перелогинься)).
Делай как хочешь. Это всё рюшечки.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125377
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну у меня - пока юзверь давит на кнопки и есть обмен с сервером, сессия продлевается. как только нет обращения в течении определённого времени - переход. типа секретность ...
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125384
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
можно задать время сессии и в год...
а можно с помощью setInterval посылать на сервер команду для продления сессии
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125564
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не много не по теме ,но вопрос такой у кого работает этот способ?!
Код: html
1.
2.
3.
4.
5.
6.
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <%--автообновление страницы после 30 минут бездействия - редирект на страницу login --%>
        <meta http-equiv="refresh" content="108000" />



http-equiv="refresh" - работает , если добавить url - делает редирект

а почему не работают эти заголовки???

Код: html
1.
2.
   <meta http-equiv ="Page-Enter" Content="blendTrans(Duration=2.0)">
   <meta http-equiv ="Page-Exit " Content="revealTrans(Duration=3.0, Transition=7)">



эффекты при попадании на страницу и уходе с нее? по нажатию на кнопки навигации в браузере или по переходу по ссылке?

пример ходу добиться плавного слистывания страниц влево

что как настроить?
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125591
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор <%--автообновление страницы после 30 минут бездействия - редирект на страницу login --%>
<meta http-equiv="refresh" content="108000" />
только это не после бездействия, а обязательный переход/обновление через заданное время
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125896
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор <%--автообновление страницы после 30 минут бездействия - редирект на страницу login --%>
<meta http-equiv="refresh" content="108000" />
только это не после бездействия, а обязательный переход/обновление через заданное время

Да это работает. так что если мы сидели на странице 30 минут и сессия на сервере протухла - то браузер обновит страницу и нас перебросить на логин.
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125960
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Да это работает. так что если мы сидели на странице
вы определитесь, "сидели" - не трогали мышку и клаву или ещё как))
...
Рейтинг: 0 / 0
Spring rest api redirect if session timeout
    #39125966
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа это работает. так что если мы сидели на странице 30 минут и сессия на сервере протухла - то браузер обновит страницу и нас перебросить на логин.
как пользователь - за такое б морду набил, как начальник - выгнал б...
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring rest api redirect if session timeout
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]