Spring报错解决一览

news/2025/3/1 13:38:58/

Spring错误持续更新贴…

问题一

springcloud-OAuth2.0配置的时候报错

Method springSecurityFilterChain in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration required a bean of type ‘org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoRestTemplateFactory’ that could not be found.

The following candidates were found but could not be injected:
- Bean method ‘userInfoRestTemplateFactory’ in ‘ResourceServerTokenServicesConfiguration’ not loaded because @ConditionalOnMissingBean (types: org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration; SearchStrategy: all) found beans of type ‘org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration’ org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration

Action:

Consider revisiting the entries above or defining a bean of type ‘org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoRestTemplateFactory’ in your configuration.

问题原因:

(1)做服务器端OAuth,引用了客户端的相关jar,并且还没有配置;

问题二:

spring cloud security oauth2.0 默认是禁用Client模式进行授权的;Oauth2.0 client模式无法授权;

allowFormAuthenticationForClients()方法开启;

问题三:

密码模式获取token的情况下, Basic校验写错了

{
“timestamp”: “2019-05-16T15:31:11.450+0000”,
“status”: 401,
“error”: “Unauthorized”,
“message”: “Unauthorized”,
“path”: “/oauth/token”
}

解决: 这个一种情况是Basic用户名密码写错了,在拦截器BasicAuthenticationFilter中校验不通过抛出异常

问题三:springSeurity明明配置了password授权,但是在做改动的时候提示如下

{
“error”: “unsupported_grant_type”,
“error_description”: “Unsupported grant type: password”
}

解答:AuthorizationServerEndpointsConfigurer类中获取所有的granter的时候,需要判断authenticationmananager是否为空,才能默认加载password权限分配器

问题四:

java.lang.IllegalStateException: Cannot apply org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer@6d8b7ea9 to already built object
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.add(AbstractConfiguredSecurityBuilder.java:196) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.apply(AbstractConfiguredSecurityBuilder.java:133) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.builders.HttpSecurity.getOrApply(HttpSecurity.java:1501) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.builders.HttpSecurity.authorizeRequests(HttpSecurity.java:654) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer.configure(ResourceServerSecurityConfigurer.java:222) ~[spring-security-oauth2-2.3.4.RELEASE.jar:na]
at org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer.configure(ResourceServerSecurityConfigurer.java:59) ~[spring-security-oauth2-2.3.4.RELEASE.jar:na]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.configure(AbstractConfiguredSecurityBuilder.java:384) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.doBuild(AbstractConfiguredSecurityBuilder.java:330) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.AbstractSecurityBuilder.build(AbstractSecurityBuilder.java:41) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.builders.WebSecurity.performBuild(WebSecurity.java:294) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.builders.WebSecurity.performBuild(WebSecurity.java:79) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.doBuild(AbstractConfiguredSecurityBuilder.java:334) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.AbstractSecurityBuilder.build(AbstractSecurityBuilder.java:41) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain(WebSecurityConfiguration.java:104) ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB415a6f9.CGLIB$springSecurityFilterChainKaTeX parse error: Undefined control sequence: \[ at position 17: …(<generated>) ~\̲[̲spring-security… E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB 415 a 6 f 9 415a6f9 415a6f9 F a s t C l a s s B y S p r i n g C G L I B FastClassBySpringCGLIB FastClassBySpringCGLIBKaTeX parse error: Undefined control sequence: \[ at position 31: …(<generated>) ~\̲[̲spring-security…BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB415a6f9.springSecurityFilterChain() ~[spring-security-config-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_162]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_162]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_162]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_162]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
… 22 common frames omitted

问题5:

{
“error”: “invalid_token”,
“error_description”: “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidXNlci1zZXJ2aWNlcyJdLCJleHAiOjE1NTg2NzcwNjgsInVzZXJfbmFtZSI6ImFkbWluIiwianRpIjoiYjlkMjY5YjgtOGE4Yi00ZDI1LTk4YzktMzkwNzRlNGNhMzk3IiwiY2xpZW50X2lkIjoibGl4aWFvaGFvIiwic2NvcGUiOlsidXNlciJdfQ.Pa03fAoN0APHQMh5FSUWRtxtQbn5vVN1JQGLu-Ql8k4”
}

解决: 原因多样,总的来说就是去服务器端根据token查询用户信息错误(1)就是token失效等 (2)地址在没有配置ssl的时候使用https等

问题6:

{
“error”: “access_denied”,
“error_description”: “Invalid token does not contain resource id (oauth2-resource)”
}

解决: 用户去资源服务器锁清秋的资源标识,在token中不存在; 如你生成的token中可用资源包括 查询用户信息,但是在请求用户信息的时候,它有拦截会查看你token中的标识是否跟自己的标识相同

问题7:

java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens

解决:请求协议不一致,应该都为http或https

问题8:

Caused by: feign.FeignException: status 403 reading OAuthUserService#testautherization()
at feign.FeignException.errorStatus(FeignException.java:78)
at feign.codec.ErrorDecoder D e f a u l t . d e c o d e ( E r r o r D e c o d e r . j a v a : 93 ) a t f e i g n . S y n c h r o n o u s M e t h o d H a n d l e r . e x e c u t e A n d D e c o d e ( S y n c h r o n o u s M e t h o d H a n d l e r . j a v a : 149 ) a t f e i g n . S y n c h r o n o u s M e t h o d H a n d l e r . i n v o k e ( S y n c h r o n o u s M e t h o d H a n d l e r . j a v a : 78 ) a t f e i g n . R e f l e c t i v e F e i g n Default.decode(ErrorDecoder.java:93) at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:149) at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:78) at feign.ReflectiveFeign Default.decode(ErrorDecoder.java:93)atfeign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:149)atfeign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:78)atfeign.ReflectiveFeignFeignInvocationHandler.invoke(ReflectiveFeign.java:103)
at com.sun.proxy. P r o x y 138. t e s t a u t h e r i z a t i o n ( U n k n o w n S o u r c e ) a t c o m . e n c i . t e s t . s e r v e r . m o d u l e . c o n t r o l l e r . P o l i c y C o n t r o l l e r . f e i g n R e q u e s t ( P o l i c y C o n t r o l l e r . j a v a : 151 ) a t c o m . e n c i . t e s t . s e r v e r . m o d u l e . c o n t r o l l e r . P o l i c y C o n t r o l l e r Proxy138.testautherization(Unknown Source) at com.enci.test.server.module.controller.PolicyController.feignRequest(PolicyController.java:151) at com.enci.test.server.module.controller.PolicyController Proxy138.testautherization(UnknownSource)atcom.enci.test.server.module.controller.PolicyController.feignRequest(PolicyController.java:151)atcom.enci.test.server.module.controller.PolicyController F a s t C l a s s B y S p r i n g C G L I B FastClassBySpringCGLIB FastClassBySpringCGLIB c 9349 f 5 f . i n v o k e ( < g e n e r a t e d > ) a t o r g . s p r i n g f r a m e w o r k . c g l i b . p r o x y . M e t h o d P r o x y . i n v o k e ( M e t h o d P r o x y . j a v a : 218 ) a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y c9349f5f.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy c9349f5f.invoke(<generated>)atorg.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)atorg.springframework.aop.framework.CglibAopProxyCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy D y n a m i c A d v i s e d I n t e r c e p t o r . i n t e r c e p t ( C g l i b A o p P r o x y . j a v a : 688 ) a t c o m . e n c i . t e s t . s e r v e r . m o d u l e . c o n t r o l l e r . P o l i c y C o n t r o l l e r DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.enci.test.server.module.controller.PolicyController DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)atcom.enci.test.server.module.controller.PolicyController E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB$6f5b74e0.feignRequest()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
… 102 more

解决:权限不足, 获取的token中锁允许访问的resource与实际访问的resource信息不匹配,被拒绝访问


http://www.ppmy.cn/news/1575778.html

相关文章

论文:KernelBench: Can LLMs Write Efficient GPU Kernels?

论文&#xff1a;KernelBench: Can LLMs Write Efficient GPU Kernels? 在网上看到可以使用LLM来写cuda内核了&#xff1f; 太厉害了 作为编译器工程师&#xff0c; 特别想知道是怎么做到的&#xff0c;非常的好奇&#xff0c;他的提示词是怎么写的&#xff0c;工作流程是什么…

实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能

下面将详细介绍如何实现使用RBF&#xff08;径向基函数&#xff09;神经网络模拟二阶电机数学模型中的非线性干扰&#xff0c;以及使用WNN&#xff08;小波神经网络&#xff09;预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行&#xff1a; 步骤1&#x…

基于Linux C应用的0.96寸OLED硬件监测器页面

一、前言 开发板&#xff1a;香橙派 5Plus。 librknnrt.so 版本&#xff1a;2.3.0。 rknn driver&#xff1a;0.9.8。 本次的页面设计基于之前写的手写FrameBuffer驱动&#xff1a; Linux手写FrameBuffer任意引脚驱动spi屏幕_rk3588 framebuffer-CSDN博客https://blog.csdn.ne…

自动化测试框架设计

&#x1f4cc; 自动化测试框架设计 该框架基于 pytest&#xff0c;支持 Web API 自动化测试&#xff0c;采用 关键字驱动&#xff0c;支持 远程执行、多机调度、失败重试、数据驱动&#xff08;CSV&#xff09;&#xff0c;并结合 allure 生成可视化测试报告。 &#x1f4c2;…

苹果与小米破冰合作:iPhone 16e全面支持Find My网络,跨生态互通实现技术性突破

2025年2月28日&#xff0c;苹果公司正式宣布其中国区特供机型iPhone 16e全面接入Find My网络升级版&#xff0c;并与小米旗舰机型15 Ultra实现跨平台互联互通。 核心功能升级 1. Find My网络能力扩展 iPhone 16e搭载的Find My 3.0网络支持亚米级定位&#xff08;误差<1米…

LeetCode-Hot100-002字母异位词

使用手写的hash&#xff0c;把每个字母的ascii码加起来再模&#xff0c;来定位hash表的索引。 不懂可以在评论区问我&#xff0c;正常题解可以参照leetcode官方题解 class Hash{ public:static const int MAXN 10007;int size;vector<list<pair<string, int>>…

Java进阶——注解一文全懂

Java注解&#xff08;Annotation&#xff09;是一种强大的元数据机制&#xff0c;为代码提供了附加信息&#xff0c;能简化配置、增强代码的可读性和可维护性。本文将深入探讨 Java 注解的相关知识。首先阐述了注解的基础概念&#xff0c;包括其本质、作用以及核心分类&#xf…

云计算相关

**云计算**是一种通过互联网提供计算资源和服务的模式&#xff0c;用户可以根据需求动态获取计算能力、存储、网络等资源&#xff0c;而无需管理底层基础设施。以下是云计算的详细介绍&#xff1a; ### 1. **核心概念** - **按需服务**: 用户根据需求获取资源&#xff0c;按使用…