Size: a a a

Java/Kotlin Web and more

2020 October 30

П

Павел Сарпов... in Java/Kotlin Web and more
Привет. Коллеги, Java 14 при сериализации через GSON сталкиваюсь с проблемой
java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.ref.PhantomCleanable() accessible: module java.base does not "opens jdk.internal.ref" to unnamed module @5b2a8a5c

Код сериализации
val serializedSpawn = Gson().toJson(this, Spawn::class.java)
return Gson().fromJson(serializedSpawn, Spawn::class.java)

Вопрос: кто сталкивался, как побеждать? Гугл молчит
источник

М

Михаил in Java/Kotlin Web and more
Павел Сарпов
Привет. Коллеги, Java 14 при сериализации через GSON сталкиваюсь с проблемой
java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.ref.PhantomCleanable() accessible: module java.base does not "opens jdk.internal.ref" to unnamed module @5b2a8a5c

Код сериализации
val serializedSpawn = Gson().toJson(this, Spawn::class.java)
return Gson().fromJson(serializedSpawn, Spawn::class.java)

Вопрос: кто сталкивался, как побеждать? Гугл молчит
https://github.com/google/gson/issues/1540 gson под капотом фишки приватного апи jdk использует, который могут в любом релизе поменять, тут решения как победить есть, но ишью открыта остается..
источник

П

Павел Сарпов... in Java/Kotlin Web and more
Михаил
https://github.com/google/gson/issues/1540 gson под капотом фишки приватного апи jdk использует, который могут в любом релизе поменять, тут решения как победить есть, но ишью открыта остается..
Спасибо
источник

РК

Роман Китурко... in Java/Kotlin Web and more
Вечер добрый
Такой вопросик:
захожу по url на html. страницу, ввожу login&password пользователя( находится в БД) все достается, находится и возвращается, но после этого получаю 403
Подскажите, что я делаю не так?
источник

В

Влад in Java/Kotlin Web and more
источник

РК

Роман Китурко... in Java/Kotlin Web and more
Я пробовал уже csrf  отключать
источник

РК

Роман Китурко... in Java/Kotlin Web and more
так выглядит конфиг
источник

РК

Роман Китурко... in Java/Kotlin Web and more
Получается, что я захожу по url( только для admin) ввожу данные пользователя с ролью admin -> данные проверяются, подтверждаются -> дальше не найдена та html страница, на которую я перехожу
источник

М

Михаил in Java/Kotlin Web and more
Роман Китурко
так выглядит конфиг
Проще всего увеличить уровень логирования logging.level.org.springframework.security=DEBUG и посмотреть какой voter запрещает обработку. Первое что в глаза бросается - юзер создается без префикса ROLE_  , спринг когда забирает значение hasRole("blabla") добавляет к нему префикс, если его нет, а для прибитой роли вытащенного пользователя он этого не делает, соответственно роли нужной нет и 403. Но это как вариант, проще всего включить дебаг и убедиться самому
источник

РК

Роман Китурко... in Java/Kotlin Web and more
Про префикс я забыл..
Благодарю!
источник

 P

 ‌‌Gleb Pilipets... in Java/Kotlin Web and more
Ребят, А что с этим не так?
Передаю простой JSON в URL и пытаюсь распарсить в Spring boot application.

localhost:8080/supply_location/get_temp?temp={"val1":0, "val2":2}
В дебаге я вижу, что строка эта жа в аргументе @RequestParam
Потом вызываю new ObjectMapper().readValue(content, Temp.class);
И вот здесь exception вылетает при попытке парсинга.

public class Temp implements Serializable {
  int val, val2;
  public Temp() {}
  two getters
}
источник

AS

Anatoly Shirokov in Java/Kotlin Web and more
 ‌‌Gleb Pilipets
Ребят, А что с этим не так?
Передаю простой JSON в URL и пытаюсь распарсить в Spring boot application.

localhost:8080/supply_location/get_temp?temp={"val1":0, "val2":2}
В дебаге я вижу, что строка эта жа в аргументе @RequestParam
Потом вызываю new ObjectMapper().readValue(content, Temp.class);
И вот здесь exception вылетает при попытке парсинга.

public class Temp implements Serializable {
  int val, val2;
  public Temp() {}
  two getters
}
А какое исключение?
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
 ‌‌Gleb Pilipets
Ребят, А что с этим не так?
Передаю простой JSON в URL и пытаюсь распарсить в Spring boot application.

localhost:8080/supply_location/get_temp?temp={"val1":0, "val2":2}
В дебаге я вижу, что строка эта жа в аргументе @RequestParam
Потом вызываю new ObjectMapper().readValue(content, Temp.class);
И вот здесь exception вылетает при попытке парсинга.

public class Temp implements Serializable {
  int val, val2;
  public Temp() {}
  two getters
}
Json в параметрах запроса - плохая идея
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Почему не пост?
источник

 P

 ‌‌Gleb Pilipets... in Java/Kotlin Web and more
Anatoly Shirokov
А какое исключение?
Блин, забыл единицу добавить в параметры, сорри.
источник

 P

 ‌‌Gleb Pilipets... in Java/Kotlin Web and more
Alexandr Emelyanov
Почему не пост?
ну семантика же получить результат на запрос без апдейта чего-либо, поэтому и глянул, что так делают.
https://lankydan.dev/2017/03/11/passing-data-transfer-objects-with-get-in-spring-boot
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Ну так передавай как get_temp?val1=1&val2=2
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
 ‌‌Gleb Pilipets
Ребят, А что с этим не так?
Передаю простой JSON в URL и пытаюсь распарсить в Spring boot application.

localhost:8080/supply_location/get_temp?temp={"val1":0, "val2":2}
В дебаге я вижу, что строка эта жа в аргументе @RequestParam
Потом вызываю new ObjectMapper().readValue(content, Temp.class);
И вот здесь exception вылетает при попытке парсинга.

public class Temp implements Serializable {
  int val, val2;
  public Temp() {}
  two getters
}
В классе Temp тоже val1, а не val?
источник

 P

 ‌‌Gleb Pilipets... in Java/Kotlin Web and more
Alexandr Emelyanov
В классе Temp тоже val1, а не val?
ДА, я уже заметил,сорри.
источник

 P

 ‌‌Gleb Pilipets... in Java/Kotlin Web and more
А можно вопрос про POJO задать?
Как избежать наименования геттеров как название переменных?

ну то есть у меня было, например "int var;"
"int getMyVar() { ... }" и это не валидный POJO обьект, но как-то можно изменить, оставив имя геттера, которое я хочу?

Может, как-то bind сделать к полю или предоставить сериализацию?
источник