将 SpringBoot 从 2.0.6.RELEASE 更新为 2.1.0.RELEASE 后评估 SpringEL 表达式的异常
Exception evaluating SpringEL expression after updating SpringBoot from 2.0.6.RELEASE to 2.1.0.RELEASE
我有一个 SpringBoot 应用程序 pom.xml:
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/>
</parent>
<!-- Spring Security -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>
...
它运行良好。
然后我将SpringBoot版本更新为
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
...
我在 1 个模板中遇到了这个错误:
Exception evaluating SpringEL expression: "#authorization.expression('hasRole(''ROLE_ADMIN'')')" (template: "tdk/common/menu" - line 87, col 21)
这里是模板:
<li th:if="${#authorization.expression('hasRole(''ROLE_ADMIN'')')}" class="menu-principal pure-menu-item" th:classappend="${activeMenuItem == ‘tdkMessages'} ? pure-menu-selected">
<a href=“/tdk/list" class="pure-menu-link">
<i class="fas fa-cloud-download-alt fa-lg fa-fw"></i> tdk
</a>
</li>
Thymeleaf 现在有一个特殊的 extension/dialect 用于 Spring 安全 5。您将需要使用它而不是用于 Spring 安全 4 的那个。
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
应该可以解决问题,<version>
由 Spring Boot 管理,因此您无需添加它。
我有一个 SpringBoot 应用程序 pom.xml:
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/>
</parent>
<!-- Spring Security -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>
...
它运行良好。 然后我将SpringBoot版本更新为
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
...
我在 1 个模板中遇到了这个错误:
Exception evaluating SpringEL expression: "#authorization.expression('hasRole(''ROLE_ADMIN'')')" (template: "tdk/common/menu" - line 87, col 21)
这里是模板:
<li th:if="${#authorization.expression('hasRole(''ROLE_ADMIN'')')}" class="menu-principal pure-menu-item" th:classappend="${activeMenuItem == ‘tdkMessages'} ? pure-menu-selected">
<a href=“/tdk/list" class="pure-menu-link">
<i class="fas fa-cloud-download-alt fa-lg fa-fw"></i> tdk
</a>
</li>
Thymeleaf 现在有一个特殊的 extension/dialect 用于 Spring 安全 5。您将需要使用它而不是用于 Spring 安全 4 的那个。
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
应该可以解决问题,<version>
由 Spring Boot 管理,因此您无需添加它。