的WebSocket在春季啓動應用程序 - 獲取403禁止的WebSocket在春季啓動應用程序 - 獲取403禁止
我可以從客戶端使用sockjs/stompjs連接的WebSocket,當我在Eclipse中運行這個(無彈簧引導)。
但是,當我爲websocket代碼創建一個Spring引導jar(gradlew構建)並運行java -jar websocket-code.jar時,出現連接到websocket的403錯誤。
我沒有認證的websockets。 我有一個CORS過濾器,並認爲請求/響應中有所有標題。
下面是我的build.gradle
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'war'
sourceCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.5.RELEASE")
}
}
configurations {
compile.exclude module: "spring-boot-starter-tomcat"
}
dependencies {
compile "org.springframework:spring-web:$spring_version"
compile "org.springframework:spring-webmvc:$spring_version"
compile "org.springframework:spring-websocket:$spring_version"
compile "org.springframework:spring-messaging:$spring_version"
compile "org.springframework.boot:spring-boot-starter-websocket"
compile "org.springframework.boot:spring-boot-starter-web"
compile "com.fasterxml.jackson.core:jackson-databind:2.6.2"
compile "com.fasterxml.jackson.core:jackson-core:2.6.2"
compile "com.fasterxml.jackson.core:jackson-annotations:2.6.2"
compile "org.springframework.amqp:spring-rabbit:1.3.5.RELEASE"
compile("org.springframework:spring-tx")
compile("org.springframework.boot:spring-boot-starter-web:1.2.6.RELEASE")
compile("org.springframework.boot:spring-boot-starter-jetty:1.2.6.RELEASE")
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile "org.springframework:spring-test:$spring_version"
}
task wrapper(type: Wrapper) {
gradleVersion = '2.5'
}
更新:
增加了CORS濾波器 response.setHeader( 「訪問控制允許來源」, 「http://localhost:8089」);
螢火蟲在客戶端
Request Headers
Origin
http://localhost:8089
Response Headers
Access-Control-Allow-Origin
http://localhost:8089
Server Logs
2015-10-02 16:57:31.372 DEBUG 1848 --- [qtp374030679-14] o.s.w.s.s.t.h.DefaultSockJsService : Request rejected, Origin header value http://localhost:8089 not allowed
地我從請求是在允許來源列表。在日誌中仍然收到拒絕請求消息。
不知道這些是否仍然有效。對我來說,它說網絡套接字層需要證書是真實的,甚至當我把我的允許起源在CORS。我仍然得到403禁止 – numerical25