【已解决】Spring Boot 2.7.x版本下添加shiro权限后错误Expected lookupPath in request attribute

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-07-19 13:37
  • 1755人已阅读
简介 环境:SpringBoot版本:2.7.11org.springframework.bootspring-boot-starter-parent2.7.11

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

环境:

Spring Boot 版本:2.7.11

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.11</version>
		<relativePath/>
	</parent>

shiro版本:

<!--shiro-->
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-spring-boot-starter</artifactId>
			<version>1.4.0</version>
		</dependency>
		<!-- shiro-redis -->
		<dependency>
			<groupId>org.crazycake</groupId>
			<artifactId>shiro-redis</artifactId>
			<version>3.1.0</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.shiro</groupId>
					<artifactId>shiro-core</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>guava</artifactId>
					<groupId>com.google.guava</groupId>
				</exclusion>
			</exclusions>
		</dependency>

		<!--JWT-->
		<dependency>
			<groupId>com.auth0</groupId>
			<artifactId>java-jwt</artifactId>
			<version>3.19.1</version>
		</dependency>

配置完成之后,启动项目。访问发现错误提示:

  1. java.lang.IllegalArgumentException: Expected lookupPath in request attribute "org.springframework.web.util.UrlPathHelper.PATH".

  2. at org.springframework.util.Assert.notNull(Assert.java:201) ~[spring-core-5.3.16.jar:5.3.16]

该问题就是源自springboot 2.6.0后的新特性,目前版本的解决方案是在springboot的配置文件中,以下配置,修改默认映射策略:

spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER

在yaml文件中修改:

d76e477c0e1dbf591cc12931eefec1ae.png

或者降低版本,如使用2.5.4版本。

保存后,重启项目。就可以正常访问了


TopTop