Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security Spring控制器参数“@AuthenticationPrincipal Jwt principal”导致异常:tokenValue不能为空_Spring Security_Spring Security Oauth2 - Fatal编程技术网

Spring security Spring控制器参数“@AuthenticationPrincipal Jwt principal”导致异常:tokenValue不能为空

Spring security Spring控制器参数“@AuthenticationPrincipal Jwt principal”导致异常:tokenValue不能为空,spring-security,spring-security-oauth2,Spring Security,Spring Security Oauth2,控制器方法如下所示 QuotaChangeResponseDTO memoryQuotaIncreaseRequest( @Valid @RequestBody QuotaIncreaseRequestDTO requestDTO, @AuthenticationPrincipal Jwt principal) { 然后我在下面粘贴了以下异常 但是,如果我删除第二个参数,改用SecurityContextHolder,它就可以工作了 此方法确实需

控制器方法如下所示

QuotaChangeResponseDTO memoryQuotaIncreaseRequest(
            @Valid @RequestBody QuotaIncreaseRequestDTO requestDTO,
            @AuthenticationPrincipal Jwt principal) {
然后我在下面粘贴了以下异常

但是,如果我删除第二个参数,改用SecurityContextHolder,它就可以工作了

此方法确实需要身份验证

更新(一天后):我刚刚将参数改为:
Principal
,这样就行了

java.lang.IllegalArgumentException: tokenValue cannot be empty
    at org.springframework.util.Assert.hasText(Assert.java:284) ~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
    at org.springframework.security.oauth2.core.AbstractOAuth2Token.<init>(AbstractOAuth2Token.java:55) ~[spring-security-oauth2-core-5.3.2.RELEASE.jar:5.3.2.RELEASE]
    at org.springframework.security.oauth2.jwt.Jwt.<init>(Jwt.java:69) ~[spring-security-oauth2-jose-5.3.2.RELEASE.jar:5.3.2.RELEASE]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:204) ~[spring-beans-5.2.6.RELEASE.jar:5.2.6.RELEASE]
    at ...
java.lang.IllegalArgumentException:tokenValue不能为空
在org.springframework.util.Assert.hasText(Assert.java:284)~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
在org.springframework.security.oauth2.core.AbstractOAuth2Token.(AbstractOAuth2Token.java:55)~[spring-security-oauth2-core-5.3.2.RELEASE.jar:5.3.2.RELEASE]
在org.springframework.security.oauth2.jwt.jwt.(jwt.java:69)~[spring-security-oauth2-jose-5.3.2.RELEASE.jar:5.3.2.RELEASE]
在java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)~[na:na]
在java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)~[na:na]
在java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)~[na:na]
在java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)~[na:na]
在java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)~[na:na]
在org.springframework.beans.BeanUtils.instanceClass(BeanUtils.java:204)~[spring-beans-5.2.6.RELEASE.jar:5.2.6.RELEASE]
在