Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
5db4e4ba
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5db4e4ba
编写于
2月 19, 2015
作者:
S
Sebastien Deleuze
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adjust log level for invalid SockJS or Websocket requests
上级
7cc56e16
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
32 addition
and
15 deletion
+32
-15
spring-web/src/main/java/org/springframework/web/util/WebUtils.java
.../src/main/java/org/springframework/web/util/WebUtils.java
+3
-1
spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java
...work/web/socket/sockjs/support/AbstractSockJsService.java
+19
-8
spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/TransportHandlingSockJsService.java
...cket/sockjs/transport/TransportHandlingSockJsService.java
+10
-6
未找到文件。
spring-web/src/main/java/org/springframework/web/util/WebUtils.java
浏览文件 @
5db4e4ba
...
...
@@ -796,7 +796,9 @@ public abstract class WebUtils {
originComponents
=
UriComponentsBuilder
.
fromHttpUrl
(
origin
).
build
();
}
catch
(
IllegalArgumentException
ex
)
{
logger
.
error
(
"Failed to parse Origin header value ["
+
origin
+
"]"
);
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Failed to parse Origin header value ["
+
origin
+
"]"
);
}
return
false
;
}
UriComponents
requestComponents
=
UriComponentsBuilder
.
fromHttpRequest
(
request
).
build
();
...
...
spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java
浏览文件 @
5db4e4ba
...
...
@@ -336,7 +336,9 @@ public abstract class AbstractSockJsService implements SockJsService {
String
sockJsPath
,
WebSocketHandler
wsHandler
)
throws
SockJsException
{
if
(
sockJsPath
==
null
)
{
logger
.
error
(
"Expected SockJS path. Failing request: "
+
request
.
getURI
());
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Expected SockJS path. Failing request: "
+
request
.
getURI
());
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
...
...
@@ -361,7 +363,10 @@ public abstract class AbstractSockJsService implements SockJsService {
}
else
if
(
sockJsPath
.
matches
(
"/iframe[0-9-.a-z_]*.html"
))
{
if
(!
this
.
allowedOrigins
.
isEmpty
()
&&
!
this
.
allowedOrigins
.
contains
(
"*"
))
{
logger
.
debug
(
"Iframe support is disabled when an origin check is required, ignoring "
+
requestInfo
);
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Iframe support is disabled when an origin check is required, ignoring "
+
requestInfo
);
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
...
...
@@ -383,7 +388,9 @@ public abstract class AbstractSockJsService implements SockJsService {
else
{
String
[]
pathSegments
=
StringUtils
.
tokenizeToStringArray
(
sockJsPath
.
substring
(
1
),
"/"
);
if
(
pathSegments
.
length
!=
3
)
{
logger
.
error
(
"Ignoring invalid transport request "
+
requestInfo
);
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Ignoring invalid transport request "
+
requestInfo
);
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
...
...
@@ -392,12 +399,16 @@ public abstract class AbstractSockJsService implements SockJsService {
String
transport
=
pathSegments
[
2
];
if
(!
isWebSocketEnabled
()
&&
transport
.
equals
(
"websocket"
))
{
logger
.
debug
(
"WebSocket transport is disabled, ignoring "
+
requestInfo
);
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"WebSocket transport is disabled, ignoring "
+
requestInfo
);
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
else
if
(!
validateRequest
(
serverId
,
sessionId
,
transport
))
{
logger
.
error
(
"Ignoring transport request "
+
requestInfo
);
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Ignoring transport request "
+
requestInfo
);
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
...
...
@@ -412,12 +423,12 @@ public abstract class AbstractSockJsService implements SockJsService {
protected
boolean
validateRequest
(
String
serverId
,
String
sessionId
,
String
transport
)
{
if
(!
StringUtils
.
hasText
(
serverId
)
||
!
StringUtils
.
hasText
(
sessionId
)
||
!
StringUtils
.
hasText
(
transport
))
{
logger
.
error
(
"No server, session, or transport path segment"
);
logger
.
warn
(
"No server, session, or transport path segment"
);
return
false
;
}
// Server and session id's must not contain "."
if
(
serverId
.
contains
(
"."
)
||
sessionId
.
contains
(
"."
))
{
logger
.
error
(
"Either server or session contains a \".\" which is not allowed by SockJS protocol."
);
logger
.
warn
(
"Either server or session contains a \".\" which is not allowed by SockJS protocol."
);
return
false
;
}
return
true
;
...
...
@@ -504,7 +515,7 @@ public abstract class AbstractSockJsService implements SockJsService {
}
protected
void
sendMethodNotAllowed
(
ServerHttpResponse
response
,
HttpMethod
...
httpMethods
)
{
logger
.
error
(
"Sending Method Not Allowed (405)"
);
logger
.
warn
(
"Sending Method Not Allowed (405)"
);
response
.
setStatusCode
(
HttpStatus
.
METHOD_NOT_ALLOWED
);
response
.
getHeaders
().
setAllow
(
new
HashSet
<
HttpMethod
>(
Arrays
.
asList
(
httpMethods
)));
}
...
...
spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/TransportHandlingSockJsService.java
浏览文件 @
5db4e4ba
/*
* Copyright 2002-201
4
the original author or authors.
* Copyright 2002-201
5
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -17,8 +17,6 @@
package
org.springframework.web.socket.sockjs.transport
;
import
java.io.IOException
;
import
java.net.InetSocketAddress
;
import
java.security.Principal
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
...
...
@@ -194,14 +192,18 @@ public class TransportHandlingSockJsService extends AbstractSockJsService implem
TransportType
transportType
=
TransportType
.
fromValue
(
transport
);
if
(
transportType
==
null
)
{
logger
.
error
(
"Unknown transport type for "
+
request
.
getURI
());
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Unknown transport type for "
+
request
.
getURI
());
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
TransportHandler
transportHandler
=
this
.
handlers
.
get
(
transportType
);
if
(
transportHandler
==
null
)
{
logger
.
error
(
"No TransportHandler for "
+
request
.
getURI
());
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"No TransportHandler for "
+
request
.
getURI
());
}
response
.
setStatusCode
(
HttpStatus
.
NOT_FOUND
);
return
;
}
...
...
@@ -287,7 +289,9 @@ public class TransportHandlingSockJsService extends AbstractSockJsService implem
@Override
protected
boolean
validateRequest
(
String
serverId
,
String
sessionId
,
String
transport
)
{
if
(!
getAllowedOrigins
().
contains
(
"*"
)
&&
!
TransportType
.
fromValue
(
transport
).
supportsOrigin
())
{
logger
.
error
(
"Origin check has been enabled, but this transport does not support it"
);
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
"Origin check has been enabled, but transport "
+
transport
+
" does not support it"
);
}
return
false
;
}
return
super
.
validateRequest
(
serverId
,
sessionId
,
transport
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录