Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-parent
Commits
e86c19c3
Commit
e86c19c3
authored
Aug 22, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Signature validation ignore empty values
parent
56051fe7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
12 deletions
+11
-12
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
...l/src/main/java/com/schbrain/common/util/StreamUtils.java
+7
-3
commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultExceptionTranslator.java
...rain/common/web/exception/DefaultExceptionTranslator.java
+1
-5
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java
...ort/signature/AbstractSignatureValidationInterceptor.java
+3
-4
No files found.
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
View file @
e86c19c3
...
@@ -158,11 +158,15 @@ public class StreamUtils {
...
@@ -158,11 +158,15 @@ public class StreamUtils {
}
}
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
)
{
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
)
{
return
join
(
data
,
delimiter
,
Objects:
:
toString
);
return
join
(
data
,
delimiter
,
Objects:
:
toString
,
any
->
true
);
}
}
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
,
Function
<
T
,
String
>
toStringFunction
)
{
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
,
Predicate
<
String
>
predicate
)
{
return
from
(
data
).
map
(
toStringFunction
).
collect
(
joining
(
delimiter
));
return
join
(
data
,
delimiter
,
Objects:
:
toString
,
predicate
);
}
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
,
Function
<
T
,
String
>
toStringFunction
,
Predicate
<
String
>
predicate
)
{
return
from
(
data
).
map
(
toStringFunction
).
filter
(
predicate
).
collect
(
joining
(
delimiter
));
}
}
public
static
List
<
String
>
split
(
String
data
)
{
public
static
List
<
String
>
split
(
String
data
)
{
...
...
commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultExceptionTranslator.java
View file @
e86c19c3
...
@@ -12,11 +12,7 @@ import org.springframework.core.Ordered;
...
@@ -12,11 +12,7 @@ import org.springframework.core.Ordered;
*/
*/
public
class
DefaultExceptionTranslator
implements
ExceptionTranslator
<
ResponseDTO
<
String
>>
{
public
class
DefaultExceptionTranslator
implements
ExceptionTranslator
<
ResponseDTO
<
String
>>
{
private
final
boolean
isProduction
;
private
final
boolean
isProduction
=
EnvUtils
.
isProduction
();
public
DefaultExceptionTranslator
()
{
this
.
isProduction
=
EnvUtils
.
isProduction
();
}
@Override
@Override
public
ResponseDTO
<
String
>
translate
(
Throwable
throwable
,
int
code
,
int
action
,
String
message
)
{
public
ResponseDTO
<
String
>
translate
(
Throwable
throwable
,
int
code
,
int
action
,
String
message
)
{
...
...
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java
View file @
e86c19c3
package
com.schbrain.common.web.support.signature
;
package
com.schbrain.common.web.support.signature
;
import
cn.hutool.crypto.digest.DigestUtil
;
import
cn.hutool.crypto.digest.DigestUtil
;
import
com.
google.common.base.Joiner
;
import
com.
schbrain.common.util.StreamUtils
;
import
com.schbrain.common.web.support.BaseHandlerInterceptor
;
import
com.schbrain.common.web.support.BaseHandlerInterceptor
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.method.HandlerMethod
;
...
@@ -9,6 +9,7 @@ import org.springframework.web.util.ContentCachingRequestWrapper;
...
@@ -9,6 +9,7 @@ import org.springframework.web.util.ContentCachingRequestWrapper;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
static
cn
.
hutool
.
core
.
text
.
StrPool
.
UNDERLINE
;
import
static
cn
.
hutool
.
core
.
text
.
StrPool
.
UNDERLINE
;
...
@@ -17,8 +18,6 @@ import static org.springframework.web.util.WebUtils.getNativeRequest;
...
@@ -17,8 +18,6 @@ import static org.springframework.web.util.WebUtils.getNativeRequest;
public
abstract
class
AbstractSignatureValidationInterceptor
<
T
extends
SignatureContext
>
extends
BaseHandlerInterceptor
{
public
abstract
class
AbstractSignatureValidationInterceptor
<
T
extends
SignatureContext
>
extends
BaseHandlerInterceptor
{
private
static
final
Joiner
JOINER
=
Joiner
.
on
(
UNDERLINE
).
skipNulls
();
private
static
final
String
SCH_APP_KEY
=
"Sch-App-Key"
;
private
static
final
String
SCH_APP_KEY
=
"Sch-App-Key"
;
private
static
final
String
SCH_TIMESTAMP
=
"Sch-Timestamp"
;
private
static
final
String
SCH_TIMESTAMP
=
"Sch-Timestamp"
;
private
static
final
String
SCH_SIGNATURE
=
"Sch-Signature"
;
private
static
final
String
SCH_SIGNATURE
=
"Sch-Signature"
;
...
@@ -69,7 +68,7 @@ public abstract class AbstractSignatureValidationInterceptor<T extends Signature
...
@@ -69,7 +68,7 @@ public abstract class AbstractSignatureValidationInterceptor<T extends Signature
}
}
protected
String
signParams
(
String
requestUri
,
String
queryString
,
String
bodyString
,
String
timestamp
,
String
appKey
,
String
appSecret
)
{
protected
String
signParams
(
String
requestUri
,
String
queryString
,
String
bodyString
,
String
timestamp
,
String
appKey
,
String
appSecret
)
{
String
toSign
=
JOINER
.
join
(
requestUri
,
queryString
,
bodyString
,
timestamp
,
appKey
,
appSecret
);
String
toSign
=
StreamUtils
.
join
(
List
.
of
(
requestUri
,
queryString
,
bodyString
,
timestamp
,
appKey
,
appSecret
),
UNDERLINE
,
StringUtils:
:
isNotBlank
);
return
DigestUtil
.
sha256Hex
(
toSign
);
return
DigestUtil
.
sha256Hex
(
toSign
);
}
}
...
...
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