diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml
index 2f9855d05c..4fd64b5289 100644
--- a/spring-security-rest/pom.xml
+++ b/spring-security-rest/pom.xml
@@ -167,6 +167,19 @@
test
+
+
+ io.springfox
+ springfox-swagger2
+ 2.2.2
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.2.2
+
+
@@ -260,6 +273,10 @@
4.11
1.10.19
+
+ 2.2.2
+ 2.2.2
+
4.4.1
4.5
diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/SwaggerConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/SwaggerConfig.java
new file mode 100644
index 0000000000..64f61055f2
--- /dev/null
+++ b/spring-security-rest/src/main/java/org/baeldung/spring/SwaggerConfig.java
@@ -0,0 +1,53 @@
+package org.baeldung.spring;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.bind.annotation.RequestMethod;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.builders.ResponseMessageBuilder;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import static com.google.common.collect.Lists.newArrayList;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+ @Bean
+ public Docket api(){
+ return new Docket(DocumentationType.SWAGGER_2)
+ .select()
+ .apis(RequestHandlerSelectors.basePackage("org.baeldung.web.controller"))
+ .paths(PathSelectors.ant("/foos/*"))
+ .build()
+ .apiInfo(apiInfo())
+ .useDefaultResponseMessages(false)
+ .globalResponseMessage(RequestMethod.GET,
+ newArrayList(new ResponseMessageBuilder()
+ .code(500)
+ .message("500 message")
+ .responseModel(new ModelRef("Error"))
+ .build(),
+ new ResponseMessageBuilder()
+ .code(403)
+ .message("Forbidden!!!!!")
+ .build()));
+ }
+
+ private ApiInfo apiInfo() {
+ ApiInfo apiInfo = new ApiInfo(
+ "My REST API",
+ "Some custom description of API.",
+ "API TOS",
+ "Terms of service",
+ "myeaddress@company.com",
+ "License of API",
+ "API license URL");
+ return apiInfo;
+ }
+}
diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java
index 4d1d6e6403..7e1e9cfcc3 100644
--- a/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java
+++ b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java
@@ -3,6 +3,7 @@ package org.baeldung.spring;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@@ -14,4 +15,13 @@ public class WebConfig extends WebMvcConfigurerAdapter {
super();
}
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("swagger-ui.html")
+ .addResourceLocations("classpath:/META-INF/resources/");
+
+ registry.addResourceHandler("/webjars/**")
+ .addResourceLocations("classpath:/META-INF/resources/webjars/");
+ }
+
}