Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-app-report
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
xzxt-app-report
Commits
0017f11d
Commit
0017f11d
authored
May 29, 2021
by
雷紫添
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
版本迭代
parent
c4e1d837
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
47 additions
and
201 deletions
+47
-201
pom.xml
+17
-6
src/main/java/org/springblade/common/config/SwaggerConfiguration.java
+0
-148
src/main/java/org/springblade/core/secure/utils/SecureUtil.java
+8
-11
src/main/java/org/springblade/founder/api/sso/controller/UserInfoByTokenController.java
+1
-2
src/main/resources/application.yml
+21
-6
src/test/java/org/springblade/test/BladeTest.java
+0
-28
No files found.
pom.xml
View file @
0017f11d
...
@@ -7,20 +7,21 @@
...
@@ -7,20 +7,21 @@
<groupId>
xzxt.zxgl.report
</groupId>
<groupId>
xzxt.zxgl.report
</groupId>
<artifactId>
zxgl
</artifactId>
<artifactId>
zxgl
</artifactId>
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
<version>
2.7.1
</version>
<version>
3.0.3
</version>
<properties>
<properties>
<blade.tool.version>
2.7.1
</blade.tool.version>
<blade.tool.version>
3.0.3
</blade.tool.version>
<java.version>
1.8
</java.version>
<java.version>
1.8
</java.version>
<knife4j.version>
2.0.
3
</knife4j.version>
<knife4j.version>
2.0.
8
</knife4j.version>
<mybatis.plus.version>
3.
3.2
</mybatis.plus.version>
<mybatis.plus.version>
3.
4.1
</mybatis.plus.version>
<protostuff.version>
1.6.0
</protostuff.version>
<protostuff.version>
1.6.0
</protostuff.version>
<captcha.version>
1.6.2
</captcha.version>
<captcha.version>
1.6.2
</captcha.version>
<easyexcel.version>
2.
1
.6
</easyexcel.version>
<easyexcel.version>
2.
2
.6
</easyexcel.version>
<spring.boot.version>
2.2.7.RELEASE
</spring.boot.version>
<spring.boot.version>
2.4.4
</spring.boot.version>
<spring.plugin.version>
2.0.0.RELEASE
</spring.plugin.version>
<spring.platform.version>
Cairo-SR8
</spring.platform.version>
<spring.platform.version>
Cairo-SR8
</spring.platform.version>
<!-- 推荐使用Harbor -->
<!-- 推荐使用Harbor -->
...
@@ -32,6 +33,16 @@
...
@@ -32,6 +33,16 @@
<dependencyManagement>
<dependencyManagement>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
org.springframework.plugin
</groupId>
<artifactId>
spring-plugin-core
</artifactId>
<version>
${spring.plugin.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.plugin
</groupId>
<artifactId>
spring-plugin-metadata
</artifactId>
<version>
${spring.plugin.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-dependencies
</artifactId>
<artifactId>
spring-boot-dependencies
</artifactId>
<version>
${spring.boot.version}
</version>
<version>
${spring.boot.version}
</version>
...
...
src/main/java/org/springblade/common/config/SwaggerConfiguration.java
deleted
100644 → 0
View file @
c4e1d837
package
org
.
springblade
.
common
.
config
;
import
com.fasterxml.classmate.ResolvedType
;
import
com.fasterxml.classmate.TypeResolver
;
import
com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j
;
import
com.google.common.collect.Lists
;
import
io.swagger.annotations.ApiOperation
;
import
io.undertow.security.api.SecurityContext
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.ParameterBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.schema.ModelRef
;
import
springfox.documentation.service.*
;
import
springfox.documentation.spi.DocumentationType
;
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
;
/**
* @Author scott
*/
@Slf4j
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import
(
BeanValidatorPluginsConfiguration
.
class
)
public
class
SwaggerConfiguration
{
private
final
TypeResolver
typeResolver
;
@Autowired
public
SwaggerConfiguration
(
TypeResolver
typeResolver
)
{
this
.
typeResolver
=
typeResolver
;
}
/*@Bean
public UiConfiguration uiConfiguration(){
return UiConfigurationBuilder.builder().supportedSubmitMethods(new String[]{})
.displayOperationId(true)
.build();
}*/
@Bean
(
value
=
"defaultApi"
)
public
Docket
defaultApi
()
{
ParameterBuilder
parameterBuilder
=
new
ParameterBuilder
();
List
<
Parameter
>
parameters
=
Lists
.
newArrayList
();
Docket
docket
=
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
groupName
(
"默认接口"
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"org.springblade"
))
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.
paths
(
PathSelectors
.
any
())
.
build
().
globalOperationParameters
(
parameters
);
//.securityContexts(Lists.newArrayList(securityContext())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey()));
return
docket
;
}
/* @Bean(value = "groupRestApi")
public Docket groupRestApi() {
List<ResolvedType> list=Lists.newArrayList();
//SpringAddtionalModel springAddtionalModel= springAddtionalModelService.scan("com.swagger.bootstrap.ui.demo.extend");
return new Docket(DocumentationType.SWAGGER_2)
// .apiInfo(groupApiInfo())
.groupName("分组接口")
.select()
.apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.group"))
.paths(PathSelectors.any())
.build()
.additionalModels(typeResolver.resolve(DeveloperApiInfo.class)).securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
}*/
/* private ApiInfo groupApiInfo(){
DeveloperApiInfoExtension apiInfoExtension=new DeveloperApiInfoExtension();
apiInfoExtension.addDeveloper(new DeveloperApiInfo("张三","zhangsan@163.com","Java"))
.addDeveloper(new DeveloperApiInfo("李四","lisi@163.com","Java"));
return new ApiInfoBuilder()
.title("swagger-bootstrap-ui很棒~~~!!!")
.description("<div style='font-size:14px;color:red;'>swagger-bootstrap-ui-demo RESTful APIs</div>")
.termsOfServiceUrl("http://www.group.com/")
.contact("group@qq.com")
.version("1.0")
.extensions(Lists.newArrayList(apiInfoExtension))
.build();
}*/
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"swagger-bootstrap-ui-demo RESTful APIs"
)
.
description
(
"# swagger-bootstrap-ui-demo RESTful APIs"
)
.
termsOfServiceUrl
(
"http://www.xx.com/"
)
.
contact
(
"xx@qq.com"
)
.
version
(
"1.0"
)
.
build
();
}
private
ApiKey
apiKey
()
{
return
new
ApiKey
(
"BearerToken"
,
"Authorization"
,
"header"
);
}
private
ApiKey
apiKey1
()
{
return
new
ApiKey
(
"BearerToken1"
,
"Authorization-x"
,
"header"
);
}
/* private SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("/.*"))
.build();
}*/
/* private SecurityContext securityContext1() {
return SecurityContext.builder()
.securityReferences(defaultAuth1())
.forPaths(PathSelectors.regex("/.*"))
.build();
}*/
List
<
SecurityReference
>
defaultAuth
()
{
AuthorizationScope
authorizationScope
=
new
AuthorizationScope
(
"global"
,
"accessEverything"
);
AuthorizationScope
[]
authorizationScopes
=
new
AuthorizationScope
[
1
];
authorizationScopes
[
0
]
=
authorizationScope
;
return
Lists
.
newArrayList
(
new
SecurityReference
(
"BearerToken"
,
authorizationScopes
));
}
List
<
SecurityReference
>
defaultAuth1
()
{
AuthorizationScope
authorizationScope
=
new
AuthorizationScope
(
"global"
,
"accessEverything"
);
AuthorizationScope
[]
authorizationScopes
=
new
AuthorizationScope
[
1
];
authorizationScopes
[
0
]
=
authorizationScope
;
return
Lists
.
newArrayList
(
new
SecurityReference
(
"BearerToken1"
,
authorizationScopes
));
}
}
src/main/java/org/springblade/core/secure/utils/SecureUtil.java
View file @
0017f11d
...
@@ -54,9 +54,9 @@ public class SecureUtil {
...
@@ -54,9 +54,9 @@ public class SecureUtil {
private
final
static
String
TENANT_ID
=
TokenConstant
.
TENANT_ID
;
private
final
static
String
TENANT_ID
=
TokenConstant
.
TENANT_ID
;
private
final
static
String
CLIENT_ID
=
TokenConstant
.
CLIENT_ID
;
private
final
static
String
CLIENT_ID
=
TokenConstant
.
CLIENT_ID
;
private
final
static
Integer
AUTH_LENGTH
=
TokenConstant
.
AUTH_LENGTH
;
private
final
static
Integer
AUTH_LENGTH
=
TokenConstant
.
AUTH_LENGTH
;
private
static
String
BASE64_SECURITY
=
Base64
.
getEncoder
().
encodeToString
(
TokenConstant
.
SIGN_KEY
.
getBytes
(
Charsets
.
UTF_8
));
private
static
final
String
BASE64_SECURITY
=
Base64
.
getEncoder
().
encodeToString
(
TokenConstant
.
SIGN_KEY
.
getBytes
(
Charsets
.
UTF_8
));
private
static
IClientDetailsService
clientDetailsService
;
private
static
final
IClientDetailsService
clientDetailsService
;
static
{
static
{
clientDetailsService
=
SpringUtil
.
getBean
(
IClientDetailsService
.
class
);
clientDetailsService
=
SpringUtil
.
getBean
(
IClientDetailsService
.
class
);
...
@@ -116,7 +116,6 @@ public class SecureUtil {
...
@@ -116,7 +116,6 @@ public class SecureUtil {
HttpServletRequest
request
=
WebUtil
.
getRequest
();
HttpServletRequest
request
=
WebUtil
.
getRequest
();
// 优先从 request 中获取
// 优先从 request 中获取
Object
bladeUser
=
request
.
getAttribute
(
XZXT_USER_REQUEST_ATTR
);
Object
bladeUser
=
request
.
getAttribute
(
XZXT_USER_REQUEST_ATTR
);
System
.
out
.
println
(
bladeUser
+
"第一次获取的bladeUser"
);
if
(
bladeUser
==
null
)
{
if
(
bladeUser
==
null
)
{
bladeUser
=
getUserXzxt
(
request
);
bladeUser
=
getUserXzxt
(
request
);
if
(
bladeUser
!=
null
)
{
if
(
bladeUser
!=
null
)
{
...
@@ -125,12 +124,12 @@ public class SecureUtil {
...
@@ -125,12 +124,12 @@ public class SecureUtil {
}
}
}
}
System
.
out
.
println
(
bladeUser
+
"最终返回的bladeUser"
);
return
(
XzxtUser
)
bladeUser
;
return
(
XzxtUser
)
bladeUser
;
}
}
public
static
XzxtUser
getUserXzxt
(
HttpServletRequest
request
)
{
public
static
XzxtUser
getUserXzxt
(
HttpServletRequest
request
)
{
Claims
claims
=
getClaims
(
request
);
Claims
claims
=
getClaims
(
request
);
if
(
claims
==
null
)
{
if
(
claims
==
null
)
{
return
null
;
return
null
;
}
}
...
@@ -307,17 +306,14 @@ public class SecureUtil {
...
@@ -307,17 +306,14 @@ public class SecureUtil {
*/
*/
public
static
Claims
getClaims
(
HttpServletRequest
request
)
{
public
static
Claims
getClaims
(
HttpServletRequest
request
)
{
String
auth
=
request
.
getHeader
(
SecureUtil
.
HEADER
);
String
auth
=
request
.
getHeader
(
SecureUtil
.
HEADER
);
System
.
out
.
println
(
auth
+
"第一次从header拿blade-auth"
);
if
(
StringUtil
.
isNotBlank
(
auth
)
&&
auth
.
length
()
>
AUTH_LENGTH
)
{
if
(
StringUtil
.
isNotBlank
(
auth
)
&&
auth
.
length
()
>
AUTH_LENGTH
)
{
String
headStr
=
auth
.
substring
(
0
,
6
).
toLowerCase
();
String
headStr
=
auth
.
substring
(
0
,
6
).
toLowerCase
();
if
(
headStr
.
compareTo
(
SecureUtil
.
BEARER
)
==
0
)
{
if
(
headStr
.
compareTo
(
SecureUtil
.
BEARER
)
==
0
)
{
auth
=
auth
.
substring
(
7
);
auth
=
auth
.
substring
(
7
);
System
.
out
.
println
(
auth
+
"要校验的jsonWebToken"
);
return
SecureUtil
.
parseJWT
(
auth
);
return
SecureUtil
.
parseJWT
(
auth
);
}
}
}
else
{
}
else
{
String
parameter
=
request
.
getParameter
(
SecureUtil
.
HEADER
);
String
parameter
=
request
.
getParameter
(
SecureUtil
.
HEADER
);
System
.
out
.
println
(
parameter
+
"parameter第一次从header拿blade-auth"
);
if
(
StringUtil
.
isNotBlank
(
parameter
))
{
if
(
StringUtil
.
isNotBlank
(
parameter
))
{
return
SecureUtil
.
parseJWT
(
parameter
);
return
SecureUtil
.
parseJWT
(
parameter
);
}
}
...
@@ -352,9 +348,10 @@ public class SecureUtil {
...
@@ -352,9 +348,10 @@ public class SecureUtil {
* @return Claims
* @return Claims
*/
*/
public
static
Claims
parseJWT
(
String
jsonWebToken
)
{
public
static
Claims
parseJWT
(
String
jsonWebToken
)
{
try
{
try
{
return
Jwts
.
parser
()
return
Jwts
.
parser
Builder
()
.
setSigningKey
(
Base64
.
getDecoder
().
decode
(
BASE64_SECURITY
))
.
setSigningKey
(
Base64
.
getDecoder
().
decode
(
BASE64_SECURITY
))
.
build
()
.
parseClaimsJws
(
jsonWebToken
).
getBody
();
.
parseClaimsJws
(
jsonWebToken
).
getBody
();
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
return
null
;
return
null
;
...
@@ -395,10 +392,10 @@ public class SecureUtil {
...
@@ -395,10 +392,10 @@ public class SecureUtil {
Key
signingKey
=
new
SecretKeySpec
(
apiKeySecretBytes
,
signatureAlgorithm
.
getJcaName
());
Key
signingKey
=
new
SecretKeySpec
(
apiKeySecretBytes
,
signatureAlgorithm
.
getJcaName
());
//添加构成JWT的类
//添加构成JWT的类
JwtBuilder
builder
=
Jwts
.
builder
().
setHeaderParam
(
"typ"
,
"J
sonWebToken
"
)
JwtBuilder
builder
=
Jwts
.
builder
().
setHeaderParam
(
"typ"
,
"J
WT
"
)
.
setIssuer
(
issuer
)
.
setIssuer
(
issuer
)
.
setAudience
(
audience
)
.
setAudience
(
audience
)
.
signWith
(
sign
atureAlgorithm
,
sign
ingKey
);
.
signWith
(
signingKey
);
//设置JWT参数
//设置JWT参数
user
.
forEach
(
builder:
:
claim
);
user
.
forEach
(
builder:
:
claim
);
...
...
src/main/java/org/springblade/founder/api/sso/controller/UserInfoByTokenController.java
View file @
0017f11d
...
@@ -21,8 +21,7 @@ import java.util.Map;
...
@@ -21,8 +21,7 @@ import java.util.Map;
@RestController
@RestController
@RequestMapping
(
value
=
"api/sys"
,
produces
=
"application/json; charset=utf-8"
)
@RequestMapping
(
value
=
"api/sys"
,
produces
=
"application/json; charset=utf-8"
)
public
class
UserInfoByTokenController
{
public
class
UserInfoByTokenController
{
@Value
(
value
=
"${redistimeout}"
)
private
int
redistimeout
;
@Autowired
@Autowired
private
RedisLock
redisLock
;
private
RedisLock
redisLock
;
@Autowired
@Autowired
...
...
src/main/resources/application.yml
View file @
0017f11d
...
@@ -16,10 +16,7 @@ spring:
...
@@ -16,10 +16,7 @@ spring:
cache
:
cache
:
ehcache
:
ehcache
:
config
:
classpath:config/ehcache.xml
config
:
classpath:config/ehcache.xml
http
:
encoding
:
charset
:
UTF-8
force
:
true
servlet
:
servlet
:
multipart
:
multipart
:
max-file-size
:
256MB
max-file-size
:
256MB
...
@@ -63,12 +60,30 @@ mybatis-plus:
...
@@ -63,12 +60,30 @@ mybatis-plus:
configuration
:
configuration
:
map-underscore-to-camel-case
:
true
map-underscore-to-camel-case
:
true
cache-enabled
:
false
cache-enabled
:
false
#knife4j配置
knife4j
:
#启用
enable
:
true
#基础认证
basic
:
enable
:
false
username
:
blade
password
:
blade
#增强配置
setting
:
enableSwaggerModels
:
true
enableDocumentManage
:
true
enableHost
:
false
enableHostText
:
http://localhost
enableRequestCache
:
true
enableFilterMultipartApis
:
false
enableFilterMultipartApiMethodType
:
POST
language
:
zh-CN
#swagger配置信息
#swagger配置信息
swagger
:
swagger
:
title
:
命案系统 接口文档系统
title
:
命案系统 接口文档系统
description
:
命案系统 接口文档系统
description
:
命案系统 接口文档系统
version
:
2.7.1
version
:
3.0.3
license
:
Powered By Founder
license
:
Powered By Founder
licenseUrl
:
https://xzxt.nm
licenseUrl
:
https://xzxt.nm
terms-of-service-url
:
https://xzxt.nm
terms-of-service-url
:
https://xzxt.nm
...
...
src/test/java/org/springblade/test/BladeTest.java
deleted
100644 → 0
View file @
c4e1d837
package
org
.
springblade
.
test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springblade.core.test.BladeBootTest
;
import
org.springblade.core.test.BladeSpringRunner
;
import
org.springblade.modules.desk.service.INoticeService
;
import
org.springframework.beans.factory.annotation.Autowired
;
/**
* Blade单元测试
*
* @author Chill
*/
@RunWith
(
BladeSpringRunner
.
class
)
@BladeBootTest
(
appName
=
"blade-runner"
,
profile
=
"test"
)
public
class
BladeTest
{
@Autowired
private
INoticeService
noticeService
;
@Test
public
void
contextLoads
()
{
int
count
=
noticeService
.
count
();
System
.
out
.
println
(
"notice数量:["
+
count
+
"] 个"
);
}
}
Write
Preview
Markdown
is supported
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