Skip to content

Commit

Permalink
Merge pull request #104 from FederatedAI/develop-1.7.1
Browse files Browse the repository at this point in the history
Merge pull request
  • Loading branch information
dylan-fan authored Dec 9, 2021
2 parents 81a339f + bae902b commit 950dae1
Show file tree
Hide file tree
Showing 13 changed files with 184 additions and 60 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ yarn.lock
*.zip
*.7z
/.idea/
*.iml
9 changes: 9 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# Release 1.7.1

#### Major Features and Improvements
**Major Features**

* Disable password storage to avoid security problem
* Update DOM structure for login-form


# Release 1.7.0

#### Major Features and Improvements
Expand Down
55 changes: 55 additions & 0 deletions deploy/FATE-Board_deploy_guide_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,25 @@
| fateboard.datasource.password | 数据库密码 ||
| server.tomcat.max-threads | tomcat最大线程数 | 1000 |
| server.tomcat.max-connections | tomcat最大连接数 | 2000 |
| spring.servlet.multipart.max-file-size |最大上传文件大小|10MB|
|spring.servlet.multipart.max-request-size|单次请求的文件的总大小|100MB|
|spring.datasource.druid.filter.config.enabled|Druid配置|false|
|spring.datasource.druid.web-stat-filter.enabled|Druid配置|false|
|spring.datasource.druid.stat-view-servlet.enabled|Druid配置|false|
|server.compression.enabled|是否开启压缩|true|
|server.compression.mime-types|要压缩的MIME type|application/json,application/xml,text/html,text/xml,text/plain|
|server.board.login.username|用户名|admin|
|server.board.login.password|用户密码|admin|
|management.endpoints.web.exposure.exclude|http方式排除需要公开的端点|*|
|spring.session.store-type|开启spring session|jdbc|
|spring.session.jdbc.initialize-schema|初始化spring session|always|
|#server.ssl.key-store=classpath:|证书仓库路径||
|#server.ssl.key-store-password=|证书仓库密码||
|#server.ssl.key-password=|证书密码||
|#server.ssl.key-alias=|证书别名||
|#HTTP_APP_KEY=|APP_KEY||
|#HTTP_SECRET_KEY=|与flow的HTTP_SECRET_KEY保持一致||


- 例子1(数据库: mysql)

Expand All @@ -49,6 +68,24 @@
fateboard.datasource.password=fate_dev
server.tomcat.max-threads=1000
server.tomcat.max-connections=20000
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
spring.datasource.druid.filter.config.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false
spring.datasource.druid.stat-view-servlet.enabled=false
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
server.board.login.username=admin
server.board.login.password=admin
management.endpoints.web.exposure.exclude=*
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
#server.ssl.key-store=classpath:
#server.ssl.key-store-password=
#server.ssl.key-password=
#server.ssl.key-alias=
#HTTP_APP_KEY=
#HTTP_SECRET_KEY=
```
- 例子2(数据库: sqlite)
Expand All @@ -65,6 +102,24 @@
fateboard.datasource.password=
server.tomcat.max-threads=1000
server.tomcat.max-connections=20000
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
spring.datasource.druid.filter.config.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false
spring.datasource.druid.stat-view-servlet.enabled=false
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
server.board.login.username=admin
server.board.login.password=admin
management.endpoints.web.exposure.exclude=*
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
#server.ssl.key-store=classpath:
#server.ssl.key-store-password=
#server.ssl.key-password=
#server.ssl.key-alias=
#HTTP_APP_KEY=
#HTTP_SECRET_KEY=
```
Expand Down
54 changes: 54 additions & 0 deletions deploy/FATE-Board_deploy_guide_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ Launch a FATE-Board service by following steps.
| fateboard.datasource.password | password of database | none |
| server.tomcat.max-threads | max threads of tomcat | 1000 |
| server.tomcat.max-connections | max connections of tomcat | 2000 |
| spring.servlet.multipart.max-file-size |max-file-size|10MB|
|spring.servlet.multipart.max-request-size|max-request-size|100MB|
|spring.datasource.druid.filter.config.enabled|Druid set|false|
|spring.datasource.druid.web-stat-filter.enabled|Druid set|false|
|spring.datasource.druid.stat-view-servlet.enabled|Druid set|false|
|server.compression.enabled|compression|true|
|server.compression.mime-types|compression.mime-types|application/json,application/xml,text/html,text/xml,text/plain|
|server.board.login.username|username|admin|
|server.board.login.password|password|admin|
|management.endpoints.web.exposure.exclude|web.exposure.exclude|*|
|spring.session.store-type|open spring session|jdbc|
|spring.session.jdbc.initialize-schema|initialize spring session|always|
|#server.ssl.key-store=classpath:|key-store classpath ||
|#server.ssl.key-store-password=|key-store-password||
|#server.ssl.key-password=|key-password||
|#server.ssl.key-alias=|key-alias||
|#HTTP_APP_KEY=|APP_KEY||
|#HTTP_SECRET_KEY=|be same with the HTTP_SECRET_KEY of flow||

- example1 (database: mysql)

Expand All @@ -53,6 +71,24 @@ Launch a FATE-Board service by following steps.
fateboard.datasource.password=fate_dev
server.tomcat.max-threads=1000
server.tomcat.max-connections=20000
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
spring.datasource.druid.filter.config.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false
spring.datasource.druid.stat-view-servlet.enabled=false
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
server.board.login.username=admin
server.board.login.password=admin
management.endpoints.web.exposure.exclude=*
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
#server.ssl.key-store=classpath:
#server.ssl.key-store-password=
#server.ssl.key-password=
#server.ssl.key-alias=
#HTTP_APP_KEY=
#HTTP_SECRET_KEY=
```
- example2(database:sqlite)
Expand All @@ -69,6 +105,24 @@ Launch a FATE-Board service by following steps.
fateboard.datasource.password=
server.tomcat.max-threads=1000
server.tomcat.max-connections=20000
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
spring.datasource.druid.filter.config.enabled=false
spring.datasource.druid.web-stat-filter.enabled=false
spring.datasource.druid.stat-view-servlet.enabled=false
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
server.board.login.username=admin
server.board.login.password=admin
management.endpoints.web.exposure.exclude=*
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
#server.ssl.key-store=classpath:
#server.ssl.key-store-password=
#server.ssl.key-password=
#server.ssl.key-alias=
#HTTP_APP_KEY=
#HTTP_SECRET_KEY=
```
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>fateboard</groupId>
<artifactId>fateboard</artifactId>
<version>1.7.0</version>
<version>1.7.1</version>

<parent>
<groupId>org.springframework.boot</groupId>
Expand Down
1 change: 0 additions & 1 deletion resources-front-end/src/utils/ReconnectingWebSocket.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/**
*
* Copyright 2019 The FATE Authors. All Rights Reserved.
Expand Down
112 changes: 59 additions & 53 deletions resources-front-end/src/views/job-login/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -13,51 +13,60 @@
<i slot="prefix" :class="'el-icon-' + hintType" />
</hint>
<!-- username -->
<el-autocomplete
v-model="username"
:fetch-suggestions="queryValue"
:class="{
['input_'+hintType]: usernameHint
}"
size="mini"
placeholder="Username/Email/Phone"
class="input"
@select="handleSelector"
@input="errorHintHide"
>
<template slot-scope="{ item }">
<div class="auto-container">
<div class="auto-info">
<div class="name">{{ item.username }}</div>
<span class="addr">{{ item.passwordSec }}</span>
</div>
<span v-if="item.default" class="hint-def">(Default)</span>
</div>
</template>
</el-autocomplete>
<!-- password -->
<el-input
v-model="password"
:type="inputType"
:class="{
['input_'+hintType]: passwordHint
}"
placeholder="password"
size="mini"
class="input"
@input="errorHintHide"
>
<img
slot="suffix"
:src="inputType==='text' ? eyeOnSee : eyeUnSee"
class="eye_hint"
@click="exchangeType"
>
</el-input>
<!-- 缓存当前账号 -->
<el-checkbox v-model="willCache" class="checked">remember me</el-checkbox>
<!-- login -->
<el-button :type="btnType" :disabled="btnDisable" size="mini" class="btn" @click="signIn">Sign in</el-button>
<el-form size="mini">
<el-form-item>
<el-input
v-model="username"
:class="{
['input_'+hintType]: usernameHint
}"
size="mini"
placeholder="Username/Email/Phone"
class="input"
@select="handleSelector"
@input="errorHintHide"
>
<!-- <template slot-scope="{ item }">
<div class="auto-container">
<div class="auto-info">
<div class="name">{{ item.username }}</div>
<span class="addr">{{ item.passwordSec }}</span>
</div>
<span v-if="item.default" class="hint-def">(Default)</span>
</div>
</template> -->
</el-input>
</el-form-item>
<el-form-item>
<!-- password -->
<el-input
v-model="password"
:type="inputType"
:class="{
['input_'+hintType]: passwordHint
}"
placeholder="password"
size="mini"
class="input"
@input="errorHintHide"
>
<img
slot="suffix"
:src="inputType==='text' ? eyeOnSee : eyeUnSee"
class="eye_hint"
@click="exchangeType"
>
</el-input>
</el-form-item>
<!-- 缓存当前账号 -->
<!-- <el-form-item>
<el-checkbox v-model="willCache" class="checked">remember me</el-checkbox>
</el-form-item> -->
<!-- login -->
<el-form-item class="form-item-center">
<el-button :type="btnType" :disabled="btnDisable" size="mini" class="btn" @click="signIn">Sign in</el-button>
</el-form-item>
</el-form>
</div>
</template>

Expand Down Expand Up @@ -197,7 +206,7 @@ export default {
const afterRequest = bool => {
if (bool) {
if (this.willCache) {
this.setAccount()
// this.setAccount()
}
this.$router.push({
name: 'RUNNING'
Expand Down Expand Up @@ -275,7 +284,6 @@ export default {
.input {
width: 30%;
min-width: 300px;
margin-top: 24px;
}
.input_error {
input {
Expand All @@ -287,12 +295,6 @@ export default {
border-color: #ffd1cb !important;
}
}
.checked {
margin-top: 24px;
}
.btn {
margin-top: 48px;
}
.eye_hint {
width: 20px;
height: 100%;
Expand All @@ -312,4 +314,8 @@ export default {
color: #bbb;
}
}
.form-item-center {
display: flex;
justify-content: center;
}
</style>
2 changes: 1 addition & 1 deletion src/main/resources/static/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>FATE Board</title><link rel="shortcut icon" href=./FATE_logo.png></head><body><div id=app></div><script>!function(e){function n(n){for(var u,f,o=n[0],a=n[1],h=n[2],i=0,k=[];i<o.length;i++)f=o[i],t[f]&&k.push(t[f][0]),t[f]=0;for(u in a)Object.prototype.hasOwnProperty.call(a,u)&&(e[u]=a[u]);for(d&&d(n);k.length;)k.shift()();return r.push.apply(r,h||[]),c()}function c(){for(var e,n=0;n<r.length;n++){for(var c=r[n],u=!0,o=1;o<c.length;o++){var a=c[o];0!==t[a]&&(u=!1)}u&&(r.splice(n--,1),e=f(f.s=c[0]))}return e}var u={},t={runtime:0},r=[];function f(n){if(u[n])return u[n].exports;var c=u[n]={i:n,l:!1,exports:{}};return e[n].call(c.exports,c,c.exports,f),c.l=!0,c.exports}f.e=function(e){var n=[],c=t[e];if(0!==c)if(c)n.push(c[2]);else{var u=new Promise(function(n,u){c=t[e]=[n,u]});n.push(c[2]=u);var r,o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.charset="utf-8",a.timeout=120,f.nc&&a.setAttribute("nonce",f.nc),a.src=function(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-0d5e":"50e765da","chunk-3500":"b1030cfc","chunk-cfad":"b4e30454","chunk-2933":"6de3cd66","chunk-c314":"51a593c5","chunk-8e04":"2f036bf9","chunk-0dbc":"ce20349f","chunk-cd3c":"1294cd99","chunk-1b98":"4ade5597","chunk-d8f4":"d46c2cfc","chunk-e1df":"abe6bbaa","chunk-ee39":"71612ce6","chunk-09f6":"38655b28","chunk-0b97":"502dcc42","chunk-0de5":"a234757c","chunk-2d2d":"d3fe24c5","chunk-3243":"d1f43b2e","chunk-385e":"778d989a","chunk-446d":"2d34539f","chunk-4d44":"dc1609c7","chunk-5834":"e7ceeeb8","chunk-6795":"5aa760fb","chunk-ffb3":"e6a48212","chunk-61f4":"cc58782f","chunk-7222":"2bf14a30","chunk-7e1c":"c02069f1","chunk-03b2":"9b36a1f1","chunk-083c":"03418451","chunk-0ca6":"4fda98a6","chunk-0ce1":"9ec44dca","chunk-0f35":"4c008445","chunk-0fff":"18ac0e3a","chunk-40cf":"16f55a3a","chunk-4764":"a7c13f7e","chunk-4f45":"085835f9","chunk-6778":"6d7897dc","chunk-67ff":"6463695e","chunk-75cf":"276139f3","chunk-8a60":"802997cd","chunk-d66f":"fe4e503f","chunk-f45b":"21319003","chunk-f565":"36e3920d","chunk-de31":"e1f693de","chunk-9513":"3303b1f7","chunk-1e00":"c5d22254","chunk-7429":"0b71ecda"}[e]+".js"}(e),r=function(n){a.onerror=a.onload=null,clearTimeout(h);var c=t[e];if(0!==c){if(c){var u=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src,f=new Error("Loading chunk "+e+" failed.\n("+u+": "+r+")");f.type=u,f.request=r,c[1](f)}t[e]=void 0}};var h=setTimeout(function(){r({type:"timeout",target:a})},12e4);a.onerror=a.onload=r,o.appendChild(a)}return Promise.all(n)},f.m=e,f.c=u,f.d=function(e,n,c){f.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:c})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,n){if(1&n&&(e=f(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var c=Object.create(null);if(f.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var u in e)f.d(c,u,function(n){return e[n]}.bind(null,u));return c},f.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(n,"a",n),n},f.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},f.p="./",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],a=o.push.bind(o);o.push=n,o=o.slice();for(var h=0;h<o.length;h++)n(o[h]);var d=a;c()}([]);</script><script src=./static/js/chunk-elementUI.d215448d.js></script><script src=./static/js/chunk-libs.fb071939.js></script><script src=./static/js/app.28f3cd30.js></script></body></html>
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>FATE Board</title><link rel="shortcut icon" href=./FATE_logo.png></head><body><div id=app></div><script>!function(e){function n(n){for(var u,f,o=n[0],a=n[1],h=n[2],i=0,k=[];i<o.length;i++)f=o[i],t[f]&&k.push(t[f][0]),t[f]=0;for(u in a)Object.prototype.hasOwnProperty.call(a,u)&&(e[u]=a[u]);for(d&&d(n);k.length;)k.shift()();return r.push.apply(r,h||[]),c()}function c(){for(var e,n=0;n<r.length;n++){for(var c=r[n],u=!0,o=1;o<c.length;o++){var a=c[o];0!==t[a]&&(u=!1)}u&&(r.splice(n--,1),e=f(f.s=c[0]))}return e}var u={},t={runtime:0},r=[];function f(n){if(u[n])return u[n].exports;var c=u[n]={i:n,l:!1,exports:{}};return e[n].call(c.exports,c,c.exports,f),c.l=!0,c.exports}f.e=function(e){var n=[],c=t[e];if(0!==c)if(c)n.push(c[2]);else{var u=new Promise(function(n,u){c=t[e]=[n,u]});n.push(c[2]=u);var r,o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.charset="utf-8",a.timeout=120,f.nc&&a.setAttribute("nonce",f.nc),a.src=function(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-0d5e":"50e765da","chunk-31ee":"b49f2b60","chunk-3500":"b1030cfc","chunk-cfad":"b4e30454","chunk-2933":"100f2ca9","chunk-c314":"51a593c5","chunk-8e04":"2f036bf9","chunk-0dbc":"73ebe113","chunk-1b98":"4ade5597","chunk-d8f4":"d46c2cfc","chunk-e1df":"abe6bbaa","chunk-ee39":"71612ce6","chunk-09f6":"38655b28","chunk-0b97":"502dcc42","chunk-0de5":"a234757c","chunk-2d2d":"d3fe24c5","chunk-3243":"d1f43b2e","chunk-385e":"778d989a","chunk-446d":"2d34539f","chunk-4d44":"dc1609c7","chunk-5834":"e7ceeeb8","chunk-6795":"5aa760fb","chunk-ffb3":"e6a48212","chunk-61f4":"cc58782f","chunk-7222":"2bf14a30","chunk-7e1c":"c02069f1","chunk-03b2":"9b36a1f1","chunk-083c":"03418451","chunk-0ca6":"4fda98a6","chunk-0ce1":"9ec44dca","chunk-0f35":"4c008445","chunk-0fff":"18ac0e3a","chunk-40cf":"16f55a3a","chunk-4764":"a7c13f7e","chunk-4f45":"085835f9","chunk-6778":"6d7897dc","chunk-67ff":"6463695e","chunk-75cf":"276139f3","chunk-8a60":"802997cd","chunk-d66f":"fe4e503f","chunk-f45b":"21319003","chunk-f565":"36e3920d","chunk-de31":"e1f693de","chunk-9513":"3303b1f7","chunk-1e00":"c5d22254","chunk-7429":"0b71ecda"}[e]+".js"}(e),r=function(n){a.onerror=a.onload=null,clearTimeout(h);var c=t[e];if(0!==c){if(c){var u=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src,f=new Error("Loading chunk "+e+" failed.\n("+u+": "+r+")");f.type=u,f.request=r,c[1](f)}t[e]=void 0}};var h=setTimeout(function(){r({type:"timeout",target:a})},12e4);a.onerror=a.onload=r,o.appendChild(a)}return Promise.all(n)},f.m=e,f.c=u,f.d=function(e,n,c){f.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:c})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,n){if(1&n&&(e=f(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var c=Object.create(null);if(f.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var u in e)f.d(c,u,function(n){return e[n]}.bind(null,u));return c},f.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(n,"a",n),n},f.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},f.p="./",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],a=o.push.bind(o);o.push=n,o=o.slice();for(var h=0;h<o.length;h++)n(o[h]);var d=a;c()}([]);</script><script src=./static/js/chunk-elementUI.d215448d.js></script><script src=./static/js/chunk-libs.fb071939.js></script><script src=./static/js/app.20ebea74.js></script></body></html>

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading

0 comments on commit 950dae1

Please sign in to comment.