如何阻止spring从internet解析schemalocation

z6psavjg  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(190)

我的应用程序在开发过程中工作得很好。但是当它部署在没有internet的环境中时,它开始抱怨spring-security-oauth2模式的位置问题。下面是我完整的模式声明。

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oauth="http://www.springframework.org/schema/security/oauth2" 
xmlns:sec="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.2.xsd
http://www.springframework.org/schema/security/oauth2 
http://www.springframework.org/schema/security/spring-security-oauth2-1.0.xsd
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.3.xsd">

当互联网可用时,它工作得很好。但是没有互联网,它就无法解决分配问题。错误是:

2021-01-20 10:25:31,784 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed>
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 124 in XML document from class path resource [-----.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: ---; columnNumber: --; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'oauth:resource-server'.

原因是,如果您检查spring-security-oauth2的“spring.schema”,它只引用“https”url。而另一个spring项目的spring.schema大多引用“http”url(这是一个单独的问题,为什么会这样!)用https替换http url修复了我的问题。
其他一些人也面临着这个问题,因为spring从internet上解析schemalocation例如:spring schemalocation在没有internet连接时失败
问:有没有办法限制spring从internet上解析schemalocation,如果类路径中的jar没有解析它,就会出错?因为这会导致在开发过程中无法识别问题,但在生产过程中会出现问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题