Redirect с сохранением header

100
23 ноября 2020, 23:30
    post("/authentication", (req, res) -> {
        Authentication authentication = new Authentication();
        if (authentication.validate(req.headers("login"), req.headers("password"))) { // Проверяем логин и пароль
            UserService userService = new UserService();
            int id = userService.findByLogin(req.headers("login")).getId(); // Получаем id пользователя
            res.header("id", String.valueOf(id)); // Передаём в header id
            res.redirect("/myAnimals"); // Делаем редирект на страницу "/myAnimals"
        }
        return "NO";
    });
        get("/myAnimals", (req, res) -> {
        int id = Integer.parseInt(req.headers("id")); // Пытаемся получить переданный id с запроса post "/authentication" 
        return animalService.userAnimalsJson(id); // Возвращаем всех животных пользователя
    });

Проблема в том, что я получаю 500 ошибку. А если я делаю тоже самое, но id передаю через куки, то всё нормально.

В логах ничего нет:

мая 03, 2019 12:51:56 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
мая 03, 2019 12:51:56 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.2.Final}
мая 03, 2019 12:51:56 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
мая 03, 2019 12:51:56 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
мая 03, 2019 12:51:56 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
мая 03, 2019 12:51:56 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate.cfg.xml
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.dom4j.io.SAXContentHandler (file:/home/teemitze/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar) to method com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy.getEncoding()
WARNING: Please consider reporting this to the maintainers of org.dom4j.io.SAXContentHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
мая 03, 2019 12:51:56 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Hibernate Configuration loaded
Hibernate serviceRegistry created
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/soaweb]
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {password=****, user=root}
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
мая 03, 2019 12:51:56 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL9Dialect
мая 03, 2019 12:51:56 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
мая 03, 2019 12:51:56 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
мая 03, 2019 12:51:56 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Hibernate: select this_.id as id1_1_0_, this_.login as login2_1_0_, this_.password as password3_1_0_ from users this_ where this_.login like ?
Hibernate: select this_.id as id1_1_0_, this_.login as login2_1_0_, this_.password as password3_1_0_ from users this_ where this_.login like ?

На странице следующая ошибка

<html>
<body>
    <h2>500 Internal Server Error</h2>
</body>

Answer 1

Если вы хотите передать какие-то значения в редиректе, то передавайте их через куки, а не заголовки. Так как заголовки не могут хранить значения больше одного запроса. А куки сохраняются на каждом запросе.

READ ALSO
Java Где хранится volatile переменная

Java Где хранится volatile переменная

Всегда думал что volatile переменные в Java хранятся в MetaSpace, недавно на собеседовании мне сказали что это неверноТак вот вопрос: где они хранятся?

105
String замена символа. Java

String замена символа. Java

Добрый день как можно заменить символ в String пробовал так:

91
Количество установок в AlarmManager

Количество установок в AlarmManager

Добрый день интересует такой вопрос, как сделать несколько установок по времени с помощью AlarmManagerДопустим мне нужно 2 сигнала в 11 и 12 часов

83
Поймать переход на другую вкладку

Поймать переход на другую вкладку

Есть задача разработать web-приложение для написания сочинения к 9 маяСочинение должно писаться по знаниям в голове и без использования поисковых...

128