java - 为什么 @Secured 无法在 Tapestry 5.4.0 中工作?

标签 java spring-security tapestry

我刚刚将 Tapestry 5.3.8 升级到 5.4.0,然后发现 @Secured 注释有问题。如果我转到具有此 @Secured 的页面,则异常 org/apache/tapestry5/services/TransformMethodSignaturecould 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>

最佳答案

好吧,经过几天的努力,我终于发现这个库:

<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 提供的所有功能,我需要向 pom 添加 4 个新库(在您的情况下,您可能需要添加多于或少于 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 , IfRoleIfLoggedIn 。创建文件并粘贴代码。

关于java - 为什么 @Secured 无法在 Tapestry 5.4.0 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55629541/

相关文章:

java - 从 jar 内的绝对路径加载 Java 资源

javassist 从第三方库/jar 获取 CtClass

java - 在此行 : Factory bean not Found 处找到多个注释

spring-boot - 根据 Spring Boot 中的登录用户更改应用程序的 URL

java - Tapestry 5 - 在 Java 代码中动态生成 W​​eb 应用程序上下文文件夹中文件的 URL

google-app-engine - 2012 年使用哪个 Java Web 框架进行 Google App Engine 开发?

java - 图矩阵项目(静态中的非静态)

java - JPA 检查实体是否可以删除

spring-boot - Thymeleaf - 获取经过身份验证的用户的全名

jsf - JSF、GWT、Wicket 或 Tapestry 在网络上有哪些成功案例?