Почему @Secured не работает в Tapestry 5.4.0? - PullRequest
0 голосов
/ 11 апреля 2019

Я только что обновил 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?

pom.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>

1 Ответ

1 голос
/ 12 апреля 2019

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

<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

В моем случае мне нужно скопировать код из исходного источника для этих классов: LogoutService (интерфейс), LogoutServiceImpl , IfRole и IfLoggedIn . Создайте файлы и вставьте код.

...