diff --git a/docker/0.4.0/Dockerfile b/docker/0.4.0/Dockerfile
new file mode 100644
index 000000000..621959ca5
--- /dev/null
+++ b/docker/0.4.0/Dockerfile
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM maven:3-openjdk-8
+RUN mkdir /source && wget https://github.com/apache/dubbo-admin/archive/0.4.0.zip && unzip -q 0.4.0.zip -d /source
+WORKDIR /source/dubbo-admin-0.4.0
+RUN mvn --batch-mode clean package -Dmaven.test.skip=true
+
+FROM openjdk:8-jre
+LABEL maintainer="dev@dubbo.apache.org"
+RUN apt-get update && apt-get install -y tini
+COPY --from=0 /source/dubbo-admin-0.4.0/dubbo-admin-distribution/target/dubbo-admin-0.4.0.jar /app.jar
+COPY --from=0 /source/dubbo-admin-0.4.0/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
+
+ENV JAVA_OPTS ""
+
+ENTRYPOINT ["tini", "--", "/usr/local/bin/entrypoint.sh"]
+EXPOSE 8080
diff --git a/docker/0.4.0/Dockerfile.test b/docker/0.4.0/Dockerfile.test
new file mode 100644
index 000000000..dee4d1d35
--- /dev/null
+++ b/docker/0.4.0/Dockerfile.test
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ubuntu:trusty
+RUN apt-get update && apt-get install -yq curl && apt-get clean
+
+WORKDIR /app
+
+ADD test.sh /app/test.sh
+
+CMD ["bash", "test.sh"]
\ No newline at end of file
diff --git a/docker/0.4.0/docker-compose.test.yml b/docker/0.4.0/docker-compose.test.yml
new file mode 100644
index 000000000..9ac7fec20
--- /dev/null
+++ b/docker/0.4.0/docker-compose.test.yml
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+zookeeper:
+ image: zookeeper:3.5
+admin:
+ build: .
+ dockerfile: Dockerfile
+ links:
+ - zookeeper
+ environment:
+ - admin.registry.address=zookeeper://zookeeper:2181
+ - admin.config-center=zookeeper://zookeeper:2181
+ - admin.metadata-report.address=zookeeper://zookeeper:2181
+ ports:
+ - 8080
+sut:
+ build: .
+ dockerfile: Dockerfile.test
+ links:
+ - admin
\ No newline at end of file
diff --git a/docker/0.4.0/test.sh b/docker/0.4.0/test.sh
new file mode 100644
index 000000000..d342e3550
--- /dev/null
+++ b/docker/0.4.0/test.sh
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOOP_SIZE=60
+i=0
+
+while [[ $i -lt LOOP_SIZE ]]; do
+ status_code=$(curl --write-out %{http_code} --silent --output /dev/null http://admin:8080)
+
+ if [[ "$status_code" -eq 200 ]] ; then
+ echo "Tests passed!"
+ exit 0
+ else
+ curl -v http://admin:8080
+ echo "status is incorrect, waiting for next turn"
+ fi
+ sleep 5
+ i=$i+1
+done
+
+echo "Tests failed!"
+exit 1
\ No newline at end of file
diff --git a/dubbo-admin-distribution/pom.xml b/dubbo-admin-distribution/pom.xml
index e8e42fa8b..3cd4ddae6 100644
--- a/dubbo-admin-distribution/pom.xml
+++ b/dubbo-admin-distribution/pom.xml
@@ -53,6 +53,8 @@
+
diff --git a/dubbo-admin-distribution/src/bin/config/application.properties b/dubbo-admin-distribution/src/bin/config/application.properties
index dbbc16cd4..4aa924b22 100644
--- a/dubbo-admin-distribution/src/bin/config/application.properties
+++ b/dubbo-admin-distribution/src/bin/config/application.properties
@@ -57,6 +57,11 @@ server.compression.enabled=true
server.compression.mime-types=text/css,text/javascript,application/javascript
server.compression.min-response-size=10240
+#token timeout, default is one hour
+admin.check.tokenTimeoutMilli=3600000
+#Jwt signingKey
+admin.check.signSecret=86295dd0c4ef69a1036b0b0c15158d77
+
#dubbo config
dubbo.application.name=dubbo-admin
dubbo.registry.address=${admin.registry.address}
diff --git a/dubbo-admin-ui/public/dubbo-admin-info.json b/dubbo-admin-ui/public/dubbo-admin-info.json
index dfcc3af19..ff9958555 100644
--- a/dubbo-admin-ui/public/dubbo-admin-info.json
+++ b/dubbo-admin-ui/public/dubbo-admin-info.json
@@ -1,3 +1,3 @@
{
- "version": "0.3.0"
+ "version": "0.4.0"
}
diff --git a/pom.xml b/pom.xml
index c9ec158ee..bc381c04c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
- 0.3.0
+ 0.4.0
${project.basedir}
3.7
3.0.2.1