33 changed files with 294 additions and 126 deletions
@ -0,0 +1,78 @@ |
|||||
|
/** |
||||
|
* Copyright © 2016 The Thingsboard Authors |
||||
|
* |
||||
|
* Licensed 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. |
||||
|
*/ |
||||
|
package org.thingsboard.server.config; |
||||
|
|
||||
|
import org.springframework.context.annotation.Bean; |
||||
|
import org.springframework.context.annotation.Configuration; |
||||
|
import org.thingsboard.server.common.data.security.Authority; |
||||
|
import springfox.documentation.builders.ApiInfoBuilder; |
||||
|
import springfox.documentation.builders.PathSelectors; |
||||
|
import springfox.documentation.service.*; |
||||
|
import springfox.documentation.spi.DocumentationType; |
||||
|
import springfox.documentation.spi.service.contexts.SecurityContext; |
||||
|
import springfox.documentation.spring.web.plugins.Docket; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import static com.google.common.collect.Lists.newArrayList; |
||||
|
|
||||
|
@Configuration |
||||
|
public class SwaggerConfiguration { |
||||
|
|
||||
|
@Bean |
||||
|
public Docket thingsboardApi() { |
||||
|
return new Docket(DocumentationType.SWAGGER_2) |
||||
|
.groupName("thingsboard") |
||||
|
.apiInfo(apiInfo()) |
||||
|
.select() |
||||
|
.paths(PathSelectors.any()) |
||||
|
.build() |
||||
|
.securitySchemes(newArrayList(jwtTokenKey())) |
||||
|
.securityContexts(newArrayList(securityContext())); |
||||
|
} |
||||
|
|
||||
|
private ApiKey jwtTokenKey() { |
||||
|
return new ApiKey("X-Authorization", "JWT token", "header"); |
||||
|
} |
||||
|
|
||||
|
private SecurityContext securityContext() { |
||||
|
return SecurityContext.builder() |
||||
|
.securityReferences(defaultAuth()) |
||||
|
.forPaths(PathSelectors.regex("/api.*")) |
||||
|
.build(); |
||||
|
} |
||||
|
|
||||
|
List<SecurityReference> defaultAuth() { |
||||
|
AuthorizationScope[] authorizationScopes = new AuthorizationScope[3]; |
||||
|
authorizationScopes[0] = new AuthorizationScope(Authority.SYS_ADMIN.name(), "System administrator"); |
||||
|
authorizationScopes[1] = new AuthorizationScope(Authority.TENANT_ADMIN.name(), "Tenant administrator"); |
||||
|
authorizationScopes[2] = new AuthorizationScope(Authority.CUSTOMER_USER.name(), "Customer"); |
||||
|
return newArrayList( |
||||
|
new SecurityReference("X-Authorization", authorizationScopes)); |
||||
|
} |
||||
|
|
||||
|
private ApiInfo apiInfo() { |
||||
|
return new ApiInfoBuilder() |
||||
|
.title("Thingsboard REST API") |
||||
|
.description("For instructions how to authorize requests please visit <a href='http://thingsboard.io/docs/rest-auth'>Documentation page</a>") |
||||
|
.contact(new Contact("Thingsboard team", "http://thingsboard.io", "info@thingsboard.io")) |
||||
|
.license("Apache License Version 2.0") |
||||
|
.licenseUrl("https://github.com/thingsboard/thingsboard/blob/master/LICENSE") |
||||
|
.version("2.0") |
||||
|
.build(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||||
|
CASSANDRA_DATA_DIR=/home/docker/cassandra_volume |
||||
@ -0,0 +1,25 @@ |
|||||
|
#!/bin/bash |
||||
|
# |
||||
|
# Copyright © 2016 The Thingsboard Authors |
||||
|
# |
||||
|
# Licensed 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. |
||||
|
# |
||||
|
|
||||
|
|
||||
|
cp ../../application/target/thingsboard.deb thingsboard.deb |
||||
|
|
||||
|
docker build -t thingsboard/application:0.1 . |
||||
|
|
||||
|
docker login |
||||
|
|
||||
|
docker push thingsboard/application:0.1 |
||||
Loading…
Reference in new issue