转载:geoserver 2.18.0 跨域配置
时间:2021-09-06
本文章向大家介绍转载:geoserver 2.18.0 跨域配置,主要包括转载:geoserver 2.18.0 跨域配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
https://liubf.com/2021/09/04/geoserver-2-18-0-%e8%b7%a8%e5%9f%9f/
文章转载自: 葱爆GIS—刘博方GIS博客( https://liubf.com )
一、去geoserve的lib目录下 geoserver\lib找jetty-servlets-XX.jar , jetty-util-xx.jar(xx表示不同的版本)两个jar包;
二、把两个jar包拷贝到geoserver\webapps\geoserver\WEB-INF\lib\目录下;
三、去geoserver\webapps\geoserver\WEB-INF目录下找web.xml,进行如下修改:
- 把下面内容的注释去掉,大概在170行左右
<!-- Uncomment following filter to enable CORS in Jetty. Do not forget the second config block further down. <filter> <filter-name>cross-origin</filter-name> <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> <init-param> <param-name>chainPreflight</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>allowedOrigins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>allowedMethods</param-name> <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value> </init-param> <init-param> <param-name>allowedHeaders</param-name> <param-value>*</param-value> </init-param> </filter> -->
- 在其后添加以下数据
<filter> <filter-name>cross-origin</filter-name> <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> <init-param> <param-name>allowedOrigins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>allowedMethods</param-name> <param-value>GET,POST</param-value> </init-param> <init-param> <param-name>allowedHeaders</param-name> <param-value>x-requested-with,content-type</param-value> </init-param> </filter>
- 去找<filter-mapping>的平级标签,加上以下内容:
<filter-mapping> <filter-name>cross-origin</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- 重启geoserver即可
四、完整版web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>GeoServer</display-name> <context-param> <param-name>serviceStrategy</param-name> <!-- Meaning of the different values : PARTIAL-BUFFER2 - Partially buffers the first xKb to disk. Once that has buffered, the the result is streamed to the user. This will allow for most errors to be caught early. BUFFER - stores the entire response in memory first, before sending it off to the user (may run out of memory) SPEED - outputs directly to the response (and cannot recover in the case of an error) FILE - outputs to the local filesystem first, before sending it off to the user --> <param-value>PARTIAL-BUFFER2</param-value> </context-param> <context-param> <!-- see comments on the PARTIAL-BUFFER strategy --> <!-- this sets the size of the buffer. default is "50" = 50kb --> <param-name>PARTIAL_BUFFER_STRATEGY_SIZE</param-name> <param-value>50</param-value> </context-param> <!--Can be true or false (defaults to: false). --> <!--When true the JSONP (text/javascript) output format is enabled --> <!-- <context-param> <param-name>ENABLE_JSONP</param-name> <param-value>true</param-value> </context-param> --> <!-- <context-param> <param-name>PROXY_BASE_URL</param-name> <param-value>http://82.58.146.45/geoserver</param-value> </context-param> --> <!-- <context-param> <param-name>GEOSERVER_DATA_DIR</param-name> <param-value>C:\eclipse\workspace\geoserver_trunk\cite\confCiteWFSPostGIS</param-value> </context-param> --> <!-- pick up all spring application contexts --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/applicationContext.xml classpath*:/applicationSecurityContext.xml</param-value> </context-param> <filter> <filter-name>FlushSafeFilter</filter-name> <filter-class>org.geoserver.filters.FlushSafeFilter</filter-class> </filter> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter> <filter-name>SessionDebugger</filter-name> <filter-class>org.geoserver.filters.SessionDebugFilter</filter-class> </filter> <filter> <filter-name>filterChainProxy</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter> <filter-name>xFrameOptionsFilter</filter-name> <filter-class>org.geoserver.filters.XFrameOptionsFilter</filter-class> </filter> <filter> <filter-name>GZIP Compression Filter</filter-name> <filter-class>org.geoserver.filters.GZIPFilter</filter-class> <init-param> <!-- The compressed-types parameter is a comma-separated list of regular expressions. If a mime type matches any of the regular expressions then it will be compressed. --> <param-name>compressed-types</param-name> <param-value>text/.*,.*xml.*,application/json,application/x-javascript</param-value> </init-param> </filter> <filter> <filter-name>Request Logging Filter</filter-name> <filter-class>org.geoserver.filters.LoggingFilter</filter-class> <init-param> <!-- The 'enabled' parameter is a boolean value, "true" (case-insensitive) for true or any other value for false. If enabled, then the logging will be performed; otherwise the logging filter will have no effect. If not specified, this parameter defaults to false. --> <param-name>enabled</param-name> <param-value>false</param-value> </init-param> <init-param> <!-- The 'log-request-headers' parameter is a boolean value, "true" (case-insensitive) for true or any other value for false. If enabled, then the logging will include the HTTP headers of requests. If not specified, this parameter defaults to false. --> <param-name>log-request-headers</param-name> <param-value>false</param-value> </init-param> <init-param> <!-- The 'log-request-bodies' parameter is a boolean value, "true" (case-insensitive) for true or any other value for false. If enabled, then the logging will include the body of POST and PUT requests. If not specified, this parameter defaults to false. Note that this may noticeably degrade responsiveness of your geoserver since it will not begin to process requests until the entire request body has been received by the server. --> <param-name>log-request-bodies</param-name> <param-value>false</param-value> </init-param> </filter> <filter> <filter-name>Advanced Dispatch Filter</filter-name> <filter-class>org.geoserver.platform.AdvancedDispatchFilter</filter-class> <!-- This filter allows for a single mapping to the spring dispatcher. However using /* as a mapping in a servlet mapping causes the servlet path to be "/" of the request. This causes problems with library like wicket and restlet. So this filter fakes the servlet path by assuming the first component of the path is the mapped path. --> </filter> <filter> <filter-name>Spring Delegating Filter</filter-name> <filter-class>org.geoserver.filters.SpringDelegatingFilter</filter-class> <!-- This filter allows for filters to be loaded via spring rather than registered here in web.xml. One thing to note is that for such filters init() is not called. INstead any initialization is performed via spring ioc. --> </filter> <filter> <filter-name>Thread locals cleanup filter</filter-name> <filter-class>org.geoserver.filters.ThreadLocalsCleanupFilter</filter-class> <!-- This filter cleans up thread locals Geotools is setting up for concurrency and performance reasons --> </filter> <!-- Uncomment following filter to enable CORS in Jetty. Do not forget the second config block further down.--> <filter> <filter-name>cross-origin</filter-name> <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> <init-param> <param-name>chainPreflight</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>allowedOrigins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>allowedMethods</param-name> <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value> </init-param> <init-param> <param-name>allowedHeaders</param-name> <param-value>*</param-value> </init-param> </filter> <filter> <filter-name>cross-origin</filter-name> <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> <init-param> <param-name>allowedOrigins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>allowedMethods</param-name> <param-value>GET,POST</param-value> </init-param> <init-param> <param-name>allowedHeaders</param-name> <param-value>x-requested-with,content-type</param-value> </init-param> </filter> <!-- Uncomment following filter to enable CORS in Tomcat. Do not forget the second config block further down. <filter> <filter-name>cross-origin</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> <init-param> <param-name>cors.allowed.origins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.allowed.methods</param-name> <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value> </init-param> <init-param> <param-name>cors.allowed.headers</param-name> <param-value>*</param-value> </init-param> </filter> --> <!-- THIS FILTER MAPPING MUST BE THE FIRST ONE, otherwise we end up with ruined chars in the input from the GUI See the "Note" in the Tomcat character encoding guide: http://wiki.apache.org/tomcat/FAQ/CharacterEncoding --> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>cross-origin</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>FlushSafeFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>SessionDebugger</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIP Compression Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>xFrameOptionsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Request Logging Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- If you want to use your security system comment out this one too --> <filter-mapping> <filter-name>filterChainProxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Advanced Dispatch Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Spring Delegating Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Thread locals cleanup filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- general initializer, should be first thing to execute --> <listener> <listener-class>org.geoserver.GeoserverInitStartupListener</listener-class> </listener> <!-- logging initializer, should execute before spring context startup --> <listener> <listener-class>org.geoserver.logging.LoggingStartupContextListener</listener-class> </listener> <!-- spring context loader --> <listener> <listener-class>org.geoserver.platform.GeoServerContextLoaderListener</listener-class> </listener> <!-- http session listener proxy --> <listener> <listener-class>org.geoserver.platform.GeoServerHttpSessionListenerProxy</listener-class> </listener> <!-- request context listener for session-scoped beans --> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <!-- spring dispatcher servlet, dispatches all incoming requests --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <!-- single mapping to spring, this only works properly if the advanced dispatch filter is active --> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <mime-mapping> <extension>xsl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>sld</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>json</extension> <mime-type>application/json</mime-type> </mime-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
原文地址:https://www.cnblogs.com/yaohuimo/p/15234709.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【课后作业】ADS 层创建&数据接入
- 【项目实战】ADS 层复购率统计
- java设计模式-单例模式详解
- 技术迭代迷茫?Android资深架构师教你如何打破这个局面!
- 基于空间矢量的机器人动力学:铰接体惯量法matlab程序
- leetcode树之相同的树
- 1. 两数之和
- 突击并发编程JUC系列-原子更新字段类AtomicStampedReference
- 去除字符数组中指定的字符
- Android——Android Studio开发环境搭建及设置本地Gradle方法
- Java——类集框架:List集合接口的详解及应用举例
- Android——NORDIC nRF5x系列 DFU升级 APP实现
- Java——集合工具类(Collections工具类、Stack子类)
- Android——RecyclerView自定义OnScrollListener实现下拉刷新监听,上拉加载更多功能
- Java——类集框架:Map集合的详解及应用举例