Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Open Subsurface Data Universe Software
Platform
System
Notification
Commits
8424e360
Commit
8424e360
authored
Aug 21, 2020
by
ethiraj krishnamanaidu
Browse files
Merge branch 'swagger' into 'master'
add swagger See merge request
!8
parents
62e7a156
d6eeef61
Pipeline
#6363
failed with stages
in 9 minutes and 34 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
notification-core/pom.xml
View file @
8424e360
...
...
@@ -37,6 +37,7 @@
<java.version>
8
</java.version>
<maven.compiler.target>
${java.version}
</maven.compiler.target>
<maven.compiler.source>
${java.version}
</maven.compiler.source>
<springfox-version>
2.7.0
</springfox-version>
</properties>
<repositories>
...
...
@@ -187,6 +188,24 @@
<version>
2.8.5
</version>
</dependency>
<!-- swagger dependencies -->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
${springfox-version}
</version>
<exclusions>
<exclusion>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
${springfox-version}
</version>
</dependency>
<dependency>
<groupId>
org.powermock
</groupId>
<artifactId>
powermock-api-mockito2
</artifactId>
...
...
@@ -211,6 +230,11 @@
<version>
4.12
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
...
...
notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
View file @
8424e360
...
...
@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.annotation.RequestScope
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Arrays
;
@Component
(
"authorizationFilter"
)
...
...
@@ -35,6 +36,8 @@ import java.util.Arrays;
public
class
AuthorizationFilter
{
private
static
final
String
BEARER_PREFIX
=
"Bearer "
;
@Autowired
private
HttpServletRequest
request
;
@Autowired
private
IAuthorizationService
authService
;
@Autowired
...
...
@@ -51,6 +54,13 @@ public class AuthorizationFilter {
requestInfoExt
.
assignPartitionIdIfNotInHeader
();
}
String
path
=
request
.
getServletPath
();
if
(
"GET"
.
equals
(
request
.
getMethod
()))
{
if
(
path
.
equals
(
"/swagger-ui.html"
))
{
return
true
;
}
}
if
(
Arrays
.
asList
(
requiredRoles
).
contains
(
Config
.
CRON
)
&&
requestInfoExt
.
isCronRequest
())
{
dpsHeaders
.
put
(
DpsHeaders
.
USER_EMAIL
,
Config
.
CRON
);
requestInfoExt
.
setHeaders
(
dpsHeaders
);
...
...
notification-core/src/main/java/org/opengroup/osdu/notification/swagger/HomeController.java
0 → 100644
View file @
8424e360
package
org.opengroup.osdu.notification.swagger
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@Controller
public
class
HomeController
{
@RequestMapping
(
value
=
{
"/"
,
"/swagger"
})
public
String
swagger
()
{
System
.
out
.
println
(
"swagger-ui.html"
);
return
"redirect:swagger-ui.html"
;
}
}
notification-core/src/main/java/org/opengroup/osdu/notification/swagger/SwaggerDocumentationConfig.java
0 → 100644
View file @
8424e360
package
org.opengroup.osdu.notification.swagger
;
import
org.opengroup.osdu.core.common.model.http.DpsHeaders
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ParameterBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.schema.ModelRef
;
import
springfox.documentation.service.ApiKey
;
import
springfox.documentation.service.AuthorizationScope
;
import
springfox.documentation.service.Parameter
;
import
springfox.documentation.service.SecurityReference
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spi.service.contexts.SecurityContext
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
@Configuration
@EnableSwagger2
public
class
SwaggerDocumentationConfig
{
public
static
final
String
AUTHORIZATION_HEADER
=
"Authorization"
;
public
static
final
String
DEFAULT_INCLUDE_PATTERN
=
"/.*"
;
@Bean
public
Docket
api
()
{
ParameterBuilder
builder
=
new
ParameterBuilder
();
List
<
Parameter
>
parameters
=
new
ArrayList
<>();
builder
.
name
(
DpsHeaders
.
DATA_PARTITION_ID
)
.
description
(
"tenant"
)
.
defaultValue
(
"common"
)
.
modelRef
(
new
ModelRef
(
"string"
))
.
parameterType
(
"header"
)
.
required
(
true
)
.
build
();
parameters
.
add
(
builder
.
build
());
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
globalOperationParameters
(
parameters
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"org.opengroup.osdu.notification.api"
))
.
build
()
.
securityContexts
(
Collections
.
singletonList
(
securityContext
()))
.
securitySchemes
(
Collections
.
singletonList
(
apiKey
()));
}
private
ApiKey
apiKey
()
{
return
new
ApiKey
(
"JWT"
,
AUTHORIZATION_HEADER
,
"header"
);
}
private
SecurityContext
securityContext
()
{
return
SecurityContext
.
builder
()
.
securityReferences
(
defaultAuth
())
.
forPaths
(
PathSelectors
.
regex
(
DEFAULT_INCLUDE_PATTERN
))
.
build
();
}
List
<
SecurityReference
>
defaultAuth
()
{
AuthorizationScope
authorizationScope
=
new
AuthorizationScope
(
"global"
,
"accessEverything"
);
AuthorizationScope
[]
authorizationScopes
=
new
AuthorizationScope
[]{
authorizationScope
};
return
Collections
.
singletonList
(
new
SecurityReference
(
"JWT"
,
authorizationScopes
));
}
}
\ No newline at end of file
notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
View file @
8424e360
...
...
@@ -31,6 +31,7 @@ import org.opengroup.osdu.notification.utils.Config;
import
org.opengroup.osdu.notification.provider.interfaces.IServiceAccountValidator
;
import
org.powermock.modules.junit4.PowerMockRunner
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -53,6 +54,8 @@ public class AuthorizationFilterTest {
@Mock
private
DpsHeaders
headers
;
@Mock
private
HttpServletRequest
request
;
@Mock
private
RequestInfoExt
requestInfo
;
@Mock
private
IAuthorizationService
authorizationService
;
...
...
notification-core/src/test/java/org/opengroup/osdu/notification/swagger/HomeControllerTest.java
0 → 100644
View file @
8424e360
package
org.opengroup.osdu.notification.swagger
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.springframework.http.MediaType
;
import
org.springframework.test.web.servlet.MockMvc
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
setup
.
MockMvcBuilders
.
standaloneSetup
;
public
class
HomeControllerTest
{
private
MockMvc
mockMvc
;
@Before
public
void
setup
()
{
mockMvc
=
standaloneSetup
(
HomeController
.
class
).
build
();
}
@Test
public
void
testSwaggerFound
()
throws
Exception
{
mockMvc
.
perform
(
get
(
"/swagger"
)
.
contentType
(
MediaType
.
APPLICATION_JSON
)
.
accept
(
MediaType
.
APPLICATION_JSON
))
.
andExpect
(
status
().
isFound
());
mockMvc
.
perform
(
get
(
"/"
)
.
contentType
(
MediaType
.
APPLICATION_JSON
)
.
accept
(
MediaType
.
APPLICATION_JSON
))
.
andExpect
(
status
().
isFound
());
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment