Почему @Secured не работает в Tapestry 5.4.0?

Я только что обновил Tapestry 5.3.8 до 5.4.0, а затем обнаружил, что аннотация @Secured имеет проблему. Если я перейду на страницу с этим @Secured, будут выброшены исключения org/apache/tapestry5/services/TransformMethodSignature и could not initialize class nu.localhost.tapestry5.springsecurity.services.internal.TransformConstants2 (без подробностей). Он больше не поддерживается в 5.4.0? Или мне нужно что-то обновить в моем pom.xml?

пом.xml

<dependency>
    <groupId>org.apache.tapestry</groupId>
    <artifactId>tapestry-core</artifactId>
    <version>${tapestry-release-version}</version>
</dependency>

<dependency>
    <groupId>org.apache.tapestry</groupId>
    <artifactId>tapestry-hibernate</artifactId>
    <version>${tapestry-release-version}</version>
</dependency>

<dependency>
    <groupId>org.apache.tapestry</groupId>
    <artifactId>tapestry-upload</artifactId>
    <version>${tapestry-release-version}</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>4.2.0.Final</version>
</dependency>

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
</dependency>

<dependency>
    <groupId>org.apache.tapestry</groupId>
    <artifactId>tapestry-spring</artifactId>
    <version>${tapestry-release-version}</version>
</dependency>

<dependency>
    <groupId>org.apache.tapestry</groupId>
    <artifactId>tapestry-kaptcha</artifactId>
    <version>${tapestry-release-version}</version>
</dependency>

<dependency>
    <groupId>org.got5</groupId>
    <artifactId>tapestry5-jquery</artifactId>
    <version>4.1.1</version>
</dependency>

<dependency>
    <groupId>com.github.lltyk</groupId>
    <artifactId>tapestry-spring-security</artifactId>
    <version>3.0.3</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.0.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.3.0.RELEASE</version>
    <scope>test</scope>
</dependency>

В 5.4.3 работает нормально, есть еще подробности? Можете показать трассировку стека?

Dmitry Gusev 11.04.2019 18:20

В том-то и проблема, что нет stacktrace/detail. Я обновил свой вопрос, указав, как выглядит мой pom.xml.

Frank 12.04.2019 04:01

Похоже, в 5.4.0 org.apache.tapestry5.services.TransformMethodSignature больше не доступен. Если да, то какая замена?

Frank 12.04.2019 04:50

Я только что проверил nu.localhost.tapestry5.springsecurity.services.internal.Tran‌​sformConstants2, и один из классов импорта — org.apache.tapestry5.services.TransformMethodSignature

Frank 12.04.2019 04:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
154
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ж, после нескольких дней борьбы я наконец понял, что эта библиотека:

<dependency>
    <groupId>com.github.lltyk</groupId>
    <artifactId>tapestry-spring-security</artifactId>
    <version>3.0.3</version>
</dependency>

Не могу идти в ногу с Tapesty 5.4, потому что у него есть класс: nu.localhost.tapestry5.springsecurity.services.internal.TransformConstants2, который ссылается на org.apache.tapestry5.services.TransformMethodSignature, который больше не доступен в Tapestry 5.4.

Я пытался обновить tapestry-spring-security до самой высокой версии: 3.0.5, но все еще не могу идти в ногу с Tapestry 5.4, поэтому единственный способ решить эту проблему — удалить ее. И чтобы заменить все функции, которые были предоставлены tapestry-spring-security, мне нужно добавить 4 новых библиотеки в pom (в вашем случае вам может понадобиться добавить больше или меньше 4): spring-security-core: 4.0.0.M1, spring-security-web: 4.2.3 .РЕЛИЗ, spring-dao: 2.0.8, servlet-api: 2.5

В моем случае мне нужно скопировать код из первоисточника для этих классов: ЛогаутСервис (интерфейс), ЛогаутСервисИмпл, Если Роль и ЕслиВошелВход. Создайте файлы и вставьте код.

Другие вопросы по теме

Получение исключения нулевого указателя в методе loadUserByUsername при проверке учетных данных для входа
Как установить полномочия пользователя из требований пользователя, возвращаемых сервером oauth в весенней безопасности
Как я могу использовать @WithMockUser и передать свое имя пользователя и пароль из моего файла свойств?
Аутентификация Ldap с весенним облачным шлюзом
Веб-перехватчик для сбора JSON: метод запроса POST не поддерживается
Spring Security Access Denied возвращает HTTP 405
Какие есть аналоги для классов из *autoconfigure.security.oauth2 и *security.oauth2 для Spring Boot 2.1.1.RELEASE?
Spring Security — заголовок базовой аутентификации отправляется для всех URL-адресов, а не только для защищенной конечной точки
Spring LDAP не может получить запись для внешней записи
Как я могу создать файл метаданных моего приложения Java Spring, чтобы установить соединение с поставщиком удостоверений, таким как Ping Federate?