Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
head_group
xyqb-user2
Commits
34ebcffd
Commit
34ebcffd
authored
Aug 07, 2023
by
唐峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端微信跳转页面的extData,部分编码转义问题处理
parent
fb662dba
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
0 deletions
+42
-0
WeChatController.java
...quantgroup/xyqb/controller/external/WeChatController.java
+42
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/WeChatController.java
View file @
34ebcffd
...
@@ -38,8 +38,10 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -38,8 +38,10 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.PrintWriter
;
import
java.io.UnsupportedEncodingException
;
import
java.net.MalformedURLException
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.net.URL
;
import
java.nio.charset.StandardCharsets
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
...
@@ -177,6 +179,38 @@ public class WeChatController implements IBaseController {
...
@@ -177,6 +179,38 @@ public class WeChatController implements IBaseController {
return
builder
.
toString
();
return
builder
.
toString
();
}
}
public
static
void
main
(
String
[]
args
)
{
try
{
//String extData = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHBzOi8vcGFzc3BvcnQucS1ncC5jb20vbG9naW4%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zeFVWVHRuRldpaWhmbk5FbnExQmxRYyIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cHM6In0%3D";
String
str
=
"eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ%3D%3D"
;
System
.
out
.
println
(
str
);
//String str = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ=="; // %2F %3D
String
str1
=
"eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ=="
;
// // %2F %3D
str
=
str
.
replace
(
"%2F"
,
"/"
);
str
=
str
.
replace
(
"%3D"
,
"="
);
System
.
out
.
println
(
str
);
System
.
out
.
println
(
str1
);
System
.
out
.
println
(
str
.
equals
(
str1
));
String
extData
=
new
String
(
Base64
.
decodeBase64
(
str
),
StandardCharsets
.
UTF_8
);
//extData = new String(Base64.decodeBase64(extData));
System
.
out
.
println
(
extData
);
byte
[]
decodedBytes
=
Base64
.
decodeBase64
(
str
.
getBytes
(
StandardCharsets
.
UTF_8
));
String
decodedString
=
new
String
(
decodedBytes
,
StandardCharsets
.
UTF_8
);
System
.
out
.
println
(
decodedString
);
byte
[]
decode
=
java
.
util
.
Base64
.
getDecoder
().
decode
(
str
);
String
decodedString2
=
new
String
(
decode
,
StandardCharsets
.
UTF_8
);
System
.
out
.
println
(
decodedString2
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
/**
* 前端微信跳转页面,通过extdata
* 前端微信跳转页面,通过extdata
*
*
...
@@ -199,6 +233,14 @@ public class WeChatController implements IBaseController {
...
@@ -199,6 +233,14 @@ public class WeChatController implements IBaseController {
}
}
try
{
try
{
//有问题的编码
//String str = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ%3D%3D";
//预期的编码
//String str1 = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ==";
//替换编码问题
extData
=
extData
.
replace
(
"%2F"
,
"/"
).
replace
(
"%3D"
,
"="
);
extData
=
new
String
(
Base64
.
decodeBase64
(
extData
),
"UTF-8"
);
extData
=
new
String
(
Base64
.
decodeBase64
(
extData
),
"UTF-8"
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
extData
=
""
;
extData
=
""
;
...
...
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