Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Coder
code-server
提交
9d87c532
C
code-server
项目概览
镜像
/
Coder
/
code-server
2022-09-21 03:15:05同步失败
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
code-server
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
9d87c532
编写于
9月 14, 2020
作者:
A
Asher
提交者:
GitHub
9月 14, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add robots.txt (#2080)
Closes #1886.
上级
cc5ed1eb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
10 deletion
+23
-10
ci/build/build-release.sh
ci/build/build-release.sh
+1
-0
src/browser/robots.txt
src/browser/robots.txt
+2
-0
src/node/http.ts
src/node/http.ts
+20
-10
未找到文件。
ci/build/build-release.sh
浏览文件 @
9d87c532
...
...
@@ -37,6 +37,7 @@ bundle_code_server() {
rsync src/browser/media/
"
$RELEASE_PATH
/src/browser/media"
mkdir
-p
"
$RELEASE_PATH
/src/browser/pages"
rsync src/browser/pages/
*
.html
"
$RELEASE_PATH
/src/browser/pages"
rsync src/browser/robots.txt
"
$RELEASE_PATH
/src/browser"
# Adds the commit to package.json
jq
--slurp
'.[0] * .[1]'
package.json <
(
...
...
src/browser/robots.txt
0 → 100644
浏览文件 @
9d87c532
User-agent: *
Disallow: /
src/node/http.ts
浏览文件 @
9d87c532
...
...
@@ -289,7 +289,7 @@ export abstract class HttpProvider {
/**
* Helper to error if not authorized.
*/
p
rotected
ensureAuthenticated
(
request
:
http
.
IncomingMessage
):
void
{
p
ublic
ensureAuthenticated
(
request
:
http
.
IncomingMessage
):
void
{
if
(
!
this
.
authenticated
(
request
))
{
throw
new
HttpError
(
"
Unauthorized
"
,
HttpCode
.
Unauthorized
)
}
...
...
@@ -647,10 +647,7 @@ export class HttpServer {
}
try
{
const
payload
=
this
.
maybeRedirect
(
request
,
route
)
||
(
route
.
provider
.
authenticated
(
request
)
&&
this
.
maybeProxy
(
request
))
||
(
await
route
.
provider
.
handleRequest
(
route
,
request
))
const
payload
=
(
await
this
.
handleRequest
(
route
,
request
))
||
(
await
route
.
provider
.
handleRequest
(
route
,
request
))
if
(
payload
.
proxy
)
{
this
.
doProxy
(
route
,
request
,
response
,
payload
.
proxy
)
}
else
{
...
...
@@ -685,15 +682,23 @@ export class HttpServer {
}
/**
* Return any necessary redirection before delegating to a provider.
* Handle requests that are always in effect no matter what provider is
* registered at the route.
*/
private
maybeRedirect
(
request
:
http
.
IncomingMessage
,
route
:
ProviderRoute
):
RedirectResponse
|
undefined
{
private
async
handleRequest
(
route
:
ProviderRoute
,
request
:
http
.
IncomingMessage
):
Promise
<
HttpResponse
|
undefined
>
{
// If we're handling TLS ensure all requests are redirected to HTTPS.
if
(
this
.
options
.
cert
&&
!
(
request
.
connection
as
tls
.
TLSSocket
).
encrypted
)
{
return
{
redirect
:
route
.
fullPath
}
}
return
undefined
// Return robots.txt.
if
(
route
.
fullPath
===
"
/robots.txt
"
)
{
const
filePath
=
path
.
resolve
(
__dirname
,
"
../../src/browser/robots.txt
"
)
return
{
content
:
await
fs
.
readFile
(
filePath
),
filePath
}
}
// Handle proxy domains.
return
this
.
maybeProxy
(
route
,
request
)
}
/**
...
...
@@ -744,7 +749,7 @@ export class HttpServer {
// can't be transferred so we need an in-between).
const
socketProxy
=
await
this
.
socketProvider
.
createProxy
(
socket
)
const
payload
=
this
.
maybeProxy
(
request
)
||
(
await
route
.
provider
.
handleWebSocket
(
route
,
request
,
socketProxy
,
head
))
this
.
maybeProxy
(
r
oute
,
r
equest
)
||
(
await
route
.
provider
.
handleWebSocket
(
route
,
request
,
socketProxy
,
head
))
if
(
payload
&&
payload
.
proxy
)
{
this
.
doProxy
(
route
,
request
,
{
socket
:
socketProxy
,
head
},
payload
.
proxy
)
}
...
...
@@ -894,8 +899,10 @@ export class HttpServer {
*
* For example if `coder.com` is specified `8080.coder.com` will be proxied
* but `8080.test.coder.com` and `test.8080.coder.com` will not.
*
* Throw an error if proxying but the user isn't authenticated.
*/
public
maybeProxy
(
request
:
http
.
IncomingMessage
):
HttpResponse
|
undefined
{
public
maybeProxy
(
r
oute
:
ProviderRoute
,
r
equest
:
http
.
IncomingMessage
):
HttpResponse
|
undefined
{
// Split into parts.
const
host
=
request
.
headers
.
host
||
""
const
idx
=
host
.
indexOf
(
"
:
"
)
...
...
@@ -909,6 +916,9 @@ export class HttpServer {
return
undefined
}
// Must be authenticated to use the proxy.
route
.
provider
.
ensureAuthenticated
(
request
)
return
{
proxy
:
{
port
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录