mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-25 01:14:36 +08:00
fix some warnings in common modules
This commit is contained in:
parent
66cd7cda43
commit
6f297ae95a
@ -61,7 +61,7 @@ public class WxConsts {
|
|||||||
/**
|
/**
|
||||||
* 群发反馈消息代码所对应的文字描述
|
* 群发反馈消息代码所对应的文字描述
|
||||||
*/
|
*/
|
||||||
public static final Map<String, String> MASS_ST_2_DESC = new HashMap<String, String>();
|
public static final Map<String, String> MASS_ST_2_DESC = new HashMap<>();
|
||||||
///////////////////////
|
///////////////////////
|
||||||
// 微信端推送过来的事件类型
|
// 微信端推送过来的事件类型
|
||||||
///////////////////////
|
///////////////////////
|
||||||
|
@ -25,7 +25,7 @@ public class WxMessageInMemoryDuplicateChecker implements WxMessageDuplicateChec
|
|||||||
/**
|
/**
|
||||||
* 消息id->消息时间戳的map
|
* 消息id->消息时间戳的map
|
||||||
*/
|
*/
|
||||||
private final ConcurrentHashMap<String, Long> msgId2Timestamp = new ConcurrentHashMap<String, Long>();
|
private final ConcurrentHashMap<String, Long> msgId2Timestamp = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台清理线程是否已经开启
|
* 后台清理线程是否已经开启
|
||||||
@ -56,7 +56,7 @@ public class WxMessageInMemoryDuplicateChecker implements WxMessageDuplicateChec
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void checkBackgroundProcessStarted() {
|
protected void checkBackgroundProcessStarted() {
|
||||||
if (backgroundProcessStarted.getAndSet(true)) {
|
if (this.backgroundProcessStarted.getAndSet(true)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Thread t = new Thread(new Runnable() {
|
Thread t = new Thread(new Runnable() {
|
||||||
@ -64,11 +64,11 @@ public class WxMessageInMemoryDuplicateChecker implements WxMessageDuplicateChec
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
while (true) {
|
while (true) {
|
||||||
Thread.sleep(clearPeriod);
|
Thread.sleep(WxMessageInMemoryDuplicateChecker.this.clearPeriod);
|
||||||
Long now = System.currentTimeMillis();
|
Long now = System.currentTimeMillis();
|
||||||
for (Map.Entry<String, Long> entry : msgId2Timestamp.entrySet()) {
|
for (Map.Entry<String, Long> entry : WxMessageInMemoryDuplicateChecker.this.msgId2Timestamp.entrySet()) {
|
||||||
if (now - entry.getValue() > timeToLive) {
|
if (now - entry.getValue() > WxMessageInMemoryDuplicateChecker.this.timeToLive) {
|
||||||
msgId2Timestamp.entrySet().remove(entry);
|
WxMessageInMemoryDuplicateChecker.this.msgId2Timestamp.entrySet().remove(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -87,7 +87,7 @@ public class WxMessageInMemoryDuplicateChecker implements WxMessageDuplicateChec
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
checkBackgroundProcessStarted();
|
checkBackgroundProcessStarted();
|
||||||
Long timestamp = msgId2Timestamp.putIfAbsent(messageId, System.currentTimeMillis());
|
Long timestamp = this.msgId2Timestamp.putIfAbsent(messageId, System.currentTimeMillis());
|
||||||
return timestamp != null;
|
return timestamp != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ public class WxAccessToken implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAccessToken() {
|
public String getAccessToken() {
|
||||||
return accessToken;
|
return this.accessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccessToken(String accessToken) {
|
public void setAccessToken(String accessToken) {
|
||||||
@ -24,7 +24,7 @@ public class WxAccessToken implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getExpiresIn() {
|
public int getExpiresIn() {
|
||||||
return expiresIn;
|
return this.expiresIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpiresIn(int expiresIn) {
|
public void setExpiresIn(int expiresIn) {
|
||||||
|
@ -39,7 +39,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAppId() {
|
public String getAppId() {
|
||||||
return appId;
|
return this.appId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAppId(String appId) {
|
public void setAppId(String appId) {
|
||||||
@ -47,7 +47,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCardId() {
|
public String getCardId() {
|
||||||
return cardId;
|
return this.cardId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCardId(String cardId) {
|
public void setCardId(String cardId) {
|
||||||
@ -55,7 +55,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCardType() {
|
public String getCardType() {
|
||||||
return cardType;
|
return this.cardType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCardType(String cardType) {
|
public void setCardType(String cardType) {
|
||||||
@ -63,7 +63,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getLocationId() {
|
public String getLocationId() {
|
||||||
return locationId;
|
return this.locationId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLocationId(String locationId) {
|
public void setLocationId(String locationId) {
|
||||||
@ -71,7 +71,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCode() {
|
public String getCode() {
|
||||||
return code;
|
return this.code;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCode(String code) {
|
public void setCode(String code) {
|
||||||
@ -79,7 +79,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getOpenId() {
|
public String getOpenId() {
|
||||||
return openId;
|
return this.openId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOpenId(String openId) {
|
public void setOpenId(String openId) {
|
||||||
@ -87,7 +87,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Long getTimestamp() {
|
public Long getTimestamp() {
|
||||||
return timestamp;
|
return this.timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTimestamp(Long timestamp) {
|
public void setTimestamp(Long timestamp) {
|
||||||
@ -95,7 +95,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getNonceStr() {
|
public String getNonceStr() {
|
||||||
return nonceStr;
|
return this.nonceStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNonceStr(String nonceStr) {
|
public void setNonceStr(String nonceStr) {
|
||||||
@ -103,7 +103,7 @@ public class WxCardApiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getSignature() {
|
public String getSignature() {
|
||||||
return signature;
|
return this.signature;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSignature(String signature) {
|
public void setSignature(String signature) {
|
||||||
|
@ -19,7 +19,7 @@ public class WxJsapiSignature implements Serializable {
|
|||||||
private String signature;
|
private String signature;
|
||||||
|
|
||||||
public String getSignature() {
|
public String getSignature() {
|
||||||
return signature;
|
return this.signature;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSignature(String signature) {
|
public void setSignature(String signature) {
|
||||||
@ -27,7 +27,7 @@ public class WxJsapiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getNoncestr() {
|
public String getNoncestr() {
|
||||||
return noncestr;
|
return this.noncestr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNoncestr(String noncestr) {
|
public void setNoncestr(String noncestr) {
|
||||||
@ -35,7 +35,7 @@ public class WxJsapiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public long getTimestamp() {
|
public long getTimestamp() {
|
||||||
return timestamp;
|
return this.timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTimestamp(long timestamp) {
|
public void setTimestamp(long timestamp) {
|
||||||
@ -43,7 +43,7 @@ public class WxJsapiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
return url;
|
return this.url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUrl(String url) {
|
public void setUrl(String url) {
|
||||||
@ -51,7 +51,7 @@ public class WxJsapiSignature implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAppid() {
|
public String getAppid() {
|
||||||
return appid;
|
return this.appid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAppid(String appid) {
|
public void setAppid(String appid) {
|
||||||
|
@ -19,7 +19,7 @@ public class WxMenu implements Serializable {
|
|||||||
|
|
||||||
private static final long serialVersionUID = -7083914585539687746L;
|
private static final long serialVersionUID = -7083914585539687746L;
|
||||||
|
|
||||||
private List<WxMenuButton> buttons = new ArrayList<WxMenuButton>();
|
private List<WxMenuButton> buttons = new ArrayList<>();
|
||||||
|
|
||||||
private WxMenuRule matchRule;
|
private WxMenuRule matchRule;
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ public class WxMenu implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<WxMenuButton> getButtons() {
|
public List<WxMenuButton> getButtons() {
|
||||||
return buttons;
|
return this.buttons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setButtons(List<WxMenuButton> buttons) {
|
public void setButtons(List<WxMenuButton> buttons) {
|
||||||
@ -48,7 +48,7 @@ public class WxMenu implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public WxMenuRule getMatchRule() {
|
public WxMenuRule getMatchRule() {
|
||||||
return matchRule;
|
return this.matchRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMatchRule(WxMenuRule matchRule) {
|
public void setMatchRule(WxMenuRule matchRule) {
|
||||||
@ -62,7 +62,7 @@ public class WxMenu implements Serializable {
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "WxMenu{" +
|
return "WxMenu{" +
|
||||||
"buttons=" + buttons +
|
"buttons=" + this.buttons +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ public class WxMenuButton {
|
|||||||
private String url;
|
private String url;
|
||||||
private String mediaId;
|
private String mediaId;
|
||||||
|
|
||||||
private List<WxMenuButton> subButtons = new ArrayList<WxMenuButton>();
|
private List<WxMenuButton> subButtons = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@ -23,7 +23,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return type;
|
return this.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setType(String type) {
|
public void setType(String type) {
|
||||||
@ -31,7 +31,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
@ -39,7 +39,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getKey() {
|
public String getKey() {
|
||||||
return key;
|
return this.key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setKey(String key) {
|
public void setKey(String key) {
|
||||||
@ -47,7 +47,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
return url;
|
return this.url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUrl(String url) {
|
public void setUrl(String url) {
|
||||||
@ -55,7 +55,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<WxMenuButton> getSubButtons() {
|
public List<WxMenuButton> getSubButtons() {
|
||||||
return subButtons;
|
return this.subButtons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSubButtons(List<WxMenuButton> subButtons) {
|
public void setSubButtons(List<WxMenuButton> subButtons) {
|
||||||
@ -63,7 +63,7 @@ public class WxMenuButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getMediaId() {
|
public String getMediaId() {
|
||||||
return mediaId;
|
return this.mediaId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMediaId(String mediaId) {
|
public void setMediaId(String mediaId) {
|
||||||
|
@ -13,7 +13,7 @@ public class WxMenuRule {
|
|||||||
private String language;
|
private String language;
|
||||||
|
|
||||||
public String getTagId() {
|
public String getTagId() {
|
||||||
return tagId;
|
return this.tagId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTagId(String tagId) {
|
public void setTagId(String tagId) {
|
||||||
@ -21,7 +21,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getSex() {
|
public String getSex() {
|
||||||
return sex;
|
return this.sex;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSex(String sex) {
|
public void setSex(String sex) {
|
||||||
@ -29,7 +29,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCountry() {
|
public String getCountry() {
|
||||||
return country;
|
return this.country;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCountry(String country) {
|
public void setCountry(String country) {
|
||||||
@ -37,7 +37,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getProvince() {
|
public String getProvince() {
|
||||||
return province;
|
return this.province;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProvince(String province) {
|
public void setProvince(String province) {
|
||||||
@ -45,7 +45,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCity() {
|
public String getCity() {
|
||||||
return city;
|
return this.city;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCity(String city) {
|
public void setCity(String city) {
|
||||||
@ -53,7 +53,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getClientPlatformType() {
|
public String getClientPlatformType() {
|
||||||
return clientPlatformType;
|
return this.clientPlatformType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClientPlatformType(String clientPlatformType) {
|
public void setClientPlatformType(String clientPlatformType) {
|
||||||
@ -61,7 +61,7 @@ public class WxMenuRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getLanguage() {
|
public String getLanguage() {
|
||||||
return language;
|
return this.language;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLanguage(String language) {
|
public void setLanguage(String language) {
|
||||||
|
@ -29,7 +29,7 @@ public class WxError implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getErrorCode() {
|
public int getErrorCode() {
|
||||||
return errorCode;
|
return this.errorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setErrorCode(int errorCode) {
|
public void setErrorCode(int errorCode) {
|
||||||
@ -37,7 +37,7 @@ public class WxError implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getErrorMsg() {
|
public String getErrorMsg() {
|
||||||
return errorMsg;
|
return this.errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setErrorMsg(String errorMsg) {
|
public void setErrorMsg(String errorMsg) {
|
||||||
@ -45,7 +45,7 @@ public class WxError implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getJson() {
|
public String getJson() {
|
||||||
return json;
|
return this.json;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setJson(String json) {
|
public void setJson(String json) {
|
||||||
@ -54,10 +54,10 @@ public class WxError implements Serializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
if (json != null) {
|
if (this.json != null) {
|
||||||
return json;
|
return this.json;
|
||||||
}
|
}
|
||||||
return "错误: Code=" + errorCode + ", Msg=" + errorMsg;
|
return "错误: Code=" + this.errorCode + ", Msg=" + this.errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
@ -17,7 +17,7 @@ public class WxMediaUploadResult implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return type;
|
return this.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setType(String type) {
|
public void setType(String type) {
|
||||||
@ -25,7 +25,7 @@ public class WxMediaUploadResult implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getMediaId() {
|
public String getMediaId() {
|
||||||
return mediaId;
|
return this.mediaId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMediaId(String mediaId) {
|
public void setMediaId(String mediaId) {
|
||||||
@ -33,7 +33,7 @@ public class WxMediaUploadResult implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public long getCreatedAt() {
|
public long getCreatedAt() {
|
||||||
return createdAt;
|
return this.createdAt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCreatedAt(long createdAt) {
|
public void setCreatedAt(long createdAt) {
|
||||||
@ -41,7 +41,7 @@ public class WxMediaUploadResult implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getThumbMediaId() {
|
public String getThumbMediaId() {
|
||||||
return thumbMediaId;
|
return this.thumbMediaId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThumbMediaId(String thumbMediaId) {
|
public void setThumbMediaId(String thumbMediaId) {
|
||||||
@ -50,8 +50,8 @@ public class WxMediaUploadResult implements Serializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "WxUploadResult [type=" + type + ", media_id=" + mediaId + ", thumb_media_id=" + thumbMediaId
|
return "WxUploadResult [type=" + this.type + ", media_id=" + this.mediaId + ", thumb_media_id=" + this.thumbMediaId
|
||||||
+ ", created_at=" + createdAt + "]";
|
+ ", created_at=" + this.createdAt + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ public class WxErrorException extends Exception {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public WxError getError() {
|
public WxError getError() {
|
||||||
return error;
|
return this.error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
*/
|
*/
|
||||||
protected static final String EMPTY_ARRAY[] = new String[0];
|
protected static final String EMPTY_ARRAY[] = new String[0];
|
||||||
// ------------------------------ WxSession
|
// ------------------------------ WxSession
|
||||||
protected Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();
|
protected Map<String, Object> attributes = new ConcurrentHashMap<>();
|
||||||
/**
|
/**
|
||||||
* The session identifier of this Session.
|
* The session identifier of this Session.
|
||||||
*/
|
*/
|
||||||
@ -47,7 +47,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
/**
|
/**
|
||||||
* The current accessed time for this session.
|
* The current accessed time for this session.
|
||||||
*/
|
*/
|
||||||
protected volatile long thisAccessedTime = creationTime;
|
protected volatile long thisAccessedTime = this.creationTime;
|
||||||
/**
|
/**
|
||||||
* The default maximum inactive interval for Sessions created by
|
* The default maximum inactive interval for Sessions created by
|
||||||
* this Manager.
|
* this Manager.
|
||||||
@ -77,7 +77,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
|
|
||||||
if (name == null) return null;
|
if (name == null) return null;
|
||||||
|
|
||||||
return (attributes.get(name));
|
return (this.attributes.get(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -86,8 +86,8 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
throw new IllegalStateException
|
throw new IllegalStateException
|
||||||
(sm.getString("sessionImpl.getAttributeNames.ise"));
|
(sm.getString("sessionImpl.getAttributeNames.ise"));
|
||||||
|
|
||||||
Set<String> names = new HashSet<String>();
|
Set<String> names = new HashSet<>();
|
||||||
names.addAll(attributes.keySet());
|
names.addAll(this.attributes.keySet());
|
||||||
return Collections.enumeration(names);
|
return Collections.enumeration(names);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
throw new IllegalStateException(sm.getString(
|
throw new IllegalStateException(sm.getString(
|
||||||
"sessionImpl.setAttribute.ise", getIdInternal()));
|
"sessionImpl.setAttribute.ise", getIdInternal()));
|
||||||
|
|
||||||
attributes.put(name, value);
|
this.attributes.put(name, value);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,10 +132,10 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
@Override
|
@Override
|
||||||
public WxSession getSession() {
|
public WxSession getSession() {
|
||||||
|
|
||||||
if (facade == null) {
|
if (this.facade == null) {
|
||||||
facade = new StandardSessionFacade(this);
|
this.facade = new StandardSessionFacade(this);
|
||||||
}
|
}
|
||||||
return (facade);
|
return (this.facade);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,15 +157,15 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (accessCount.get() > 0) {
|
if (this.accessCount.get() > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (maxInactiveInterval > 0) {
|
if (this.maxInactiveInterval > 0) {
|
||||||
long timeNow = System.currentTimeMillis();
|
long timeNow = System.currentTimeMillis();
|
||||||
int timeIdle;
|
int timeIdle;
|
||||||
timeIdle = (int) ((timeNow - thisAccessedTime) / 1000L);
|
timeIdle = (int) ((timeNow - this.thisAccessedTime) / 1000L);
|
||||||
if (timeIdle >= maxInactiveInterval) {
|
if (timeIdle >= this.maxInactiveInterval) {
|
||||||
expire();
|
expire();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
if (name == null) return;
|
if (name == null) return;
|
||||||
|
|
||||||
// Remove this attribute from our collection
|
// Remove this attribute from our collection
|
||||||
attributes.remove(name);
|
this.attributes.remove(name);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
// Check to see if session has already been invalidated.
|
// Check to see if session has already been invalidated.
|
||||||
// Do not check expiring at this point as expire should not return until
|
// Do not check expiring at this point as expire should not return until
|
||||||
// isValid is false
|
// isValid is false
|
||||||
if (!isValid)
|
if (!this.isValid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
@ -210,24 +210,24 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
// Double check locking - isValid needs to be volatile
|
// Double check locking - isValid needs to be volatile
|
||||||
// The check of expiring is to ensure that an infinite loop is not
|
// The check of expiring is to ensure that an infinite loop is not
|
||||||
// entered as per bug 56339
|
// entered as per bug 56339
|
||||||
if (expiring || !isValid)
|
if (this.expiring || !this.isValid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (manager == null)
|
if (this.manager == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Mark this session as "being expired"
|
// Mark this session as "being expired"
|
||||||
expiring = true;
|
this.expiring = true;
|
||||||
|
|
||||||
accessCount.set(0);
|
this.accessCount.set(0);
|
||||||
|
|
||||||
// Remove this session from our manager's active sessions
|
// Remove this session from our manager's active sessions
|
||||||
manager.remove(this, true);
|
this.manager.remove(this, true);
|
||||||
|
|
||||||
|
|
||||||
// We have completed expire of this session
|
// We have completed expire of this session
|
||||||
setValid(false);
|
setValid(false);
|
||||||
expiring = false;
|
this.expiring = false;
|
||||||
|
|
||||||
// Unbind any objects associated with this session
|
// Unbind any objects associated with this session
|
||||||
String keys[] = keys();
|
String keys[] = keys();
|
||||||
@ -244,7 +244,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
public void access() {
|
public void access() {
|
||||||
|
|
||||||
this.thisAccessedTime = System.currentTimeMillis();
|
this.thisAccessedTime = System.currentTimeMillis();
|
||||||
accessCount.incrementAndGet();
|
this.accessCount.incrementAndGet();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
public void endAccess() {
|
public void endAccess() {
|
||||||
|
|
||||||
this.thisAccessedTime = System.currentTimeMillis();
|
this.thisAccessedTime = System.currentTimeMillis();
|
||||||
accessCount.decrementAndGet();
|
this.accessCount.decrementAndGet();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,13 +273,13 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setId(String id) {
|
public void setId(String id) {
|
||||||
if ((this.id != null) && (manager != null))
|
if ((this.id != null) && (this.manager != null))
|
||||||
manager.remove(this);
|
this.manager.remove(this);
|
||||||
|
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|
||||||
if (manager != null)
|
if (this.manager != null)
|
||||||
manager.add(this);
|
this.manager.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -289,7 +289,7 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
*/
|
*/
|
||||||
protected String[] keys() {
|
protected String[] keys() {
|
||||||
|
|
||||||
return attributes.keySet().toArray(EMPTY_ARRAY);
|
return this.attributes.keySet().toArray(EMPTY_ARRAY);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,31 +300,31 @@ public class StandardSession implements WxSession, InternalSession {
|
|||||||
|
|
||||||
StandardSession session = (StandardSession) o;
|
StandardSession session = (StandardSession) o;
|
||||||
|
|
||||||
if (creationTime != session.creationTime) return false;
|
if (this.creationTime != session.creationTime) return false;
|
||||||
if (expiring != session.expiring) return false;
|
if (this.expiring != session.expiring) return false;
|
||||||
if (isValid != session.isValid) return false;
|
if (this.isValid != session.isValid) return false;
|
||||||
if (maxInactiveInterval != session.maxInactiveInterval) return false;
|
if (this.maxInactiveInterval != session.maxInactiveInterval) return false;
|
||||||
if (thisAccessedTime != session.thisAccessedTime) return false;
|
if (this.thisAccessedTime != session.thisAccessedTime) return false;
|
||||||
if (!accessCount.equals(session.accessCount)) return false;
|
if (!this.accessCount.equals(session.accessCount)) return false;
|
||||||
if (!attributes.equals(session.attributes)) return false;
|
if (!this.attributes.equals(session.attributes)) return false;
|
||||||
if (!facade.equals(session.facade)) return false;
|
if (!this.facade.equals(session.facade)) return false;
|
||||||
if (!id.equals(session.id)) return false;
|
if (!this.id.equals(session.id)) return false;
|
||||||
return manager.equals(session.manager);
|
return this.manager.equals(session.manager);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int result = attributes.hashCode();
|
int result = this.attributes.hashCode();
|
||||||
result = 31 * result + id.hashCode();
|
result = 31 * result + this.id.hashCode();
|
||||||
result = 31 * result + (isValid ? 1 : 0);
|
result = 31 * result + (this.isValid ? 1 : 0);
|
||||||
result = 31 * result + (expiring ? 1 : 0);
|
result = 31 * result + (this.expiring ? 1 : 0);
|
||||||
result = 31 * result + manager.hashCode();
|
result = 31 * result + this.manager.hashCode();
|
||||||
result = 31 * result + (int) (creationTime ^ (creationTime >>> 32));
|
result = 31 * result + (int) (this.creationTime ^ (this.creationTime >>> 32));
|
||||||
result = 31 * result + (int) (thisAccessedTime ^ (thisAccessedTime >>> 32));
|
result = 31 * result + (int) (this.thisAccessedTime ^ (this.thisAccessedTime >>> 32));
|
||||||
result = 31 * result + maxInactiveInterval;
|
result = 31 * result + this.maxInactiveInterval;
|
||||||
result = 31 * result + facade.hashCode();
|
result = 31 * result + this.facade.hashCode();
|
||||||
result = 31 * result + accessCount.hashCode();
|
result = 31 * result + this.accessCount.hashCode();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,32 +14,32 @@ public class StandardSessionFacade implements WxSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public InternalSession getInternalSession() {
|
public InternalSession getInternalSession() {
|
||||||
return (InternalSession) session;
|
return (InternalSession) this.session;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getAttribute(String name) {
|
public Object getAttribute(String name) {
|
||||||
return session.getAttribute(name);
|
return this.session.getAttribute(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Enumeration<String> getAttributeNames() {
|
public Enumeration<String> getAttributeNames() {
|
||||||
return session.getAttributeNames();
|
return this.session.getAttributeNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setAttribute(String name, Object value) {
|
public void setAttribute(String name, Object value) {
|
||||||
session.setAttribute(name, value);
|
this.session.setAttribute(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAttribute(String name) {
|
public void removeAttribute(String name) {
|
||||||
session.removeAttribute(name);
|
this.session.removeAttribute(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidate() {
|
public void invalidate() {
|
||||||
session.invalidate();
|
this.session.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
* The set of currently active Sessions for this Manager, keyed by
|
* The set of currently active Sessions for this Manager, keyed by
|
||||||
* session identifier.
|
* session identifier.
|
||||||
*/
|
*/
|
||||||
protected Map<String, InternalSession> sessions = new ConcurrentHashMap<String, InternalSession>();
|
protected Map<String, InternalSession> sessions = new ConcurrentHashMap<>();
|
||||||
/**
|
/**
|
||||||
* The maximum number of active Sessions allowed, or -1 for no limit.
|
* The maximum number of active Sessions allowed, or -1 for no limit.
|
||||||
*/
|
*/
|
||||||
@ -117,7 +117,7 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
@Override
|
@Override
|
||||||
public void remove(InternalSession session, boolean update) {
|
public void remove(InternalSession session, boolean update) {
|
||||||
if (session.getIdInternal() != null) {
|
if (session.getIdInternal() != null) {
|
||||||
sessions.remove(session.getIdInternal());
|
this.sessions.remove(session.getIdInternal());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
|
|
||||||
if (id == null)
|
if (id == null)
|
||||||
return (null);
|
return (null);
|
||||||
return sessions.get(id);
|
return this.sessions.get(id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,12 +138,12 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
(sm.getString("sessionManagerImpl.createSession.ise"));
|
(sm.getString("sessionManagerImpl.createSession.ise"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((maxActiveSessions >= 0) &&
|
if ((this.maxActiveSessions >= 0) &&
|
||||||
(getActiveSessions() >= maxActiveSessions)) {
|
(getActiveSessions() >= this.maxActiveSessions)) {
|
||||||
rejectedSessions++;
|
this.rejectedSessions++;
|
||||||
throw new TooManyActiveSessionsException(
|
throw new TooManyActiveSessionsException(
|
||||||
sm.getString("sessionManagerImpl.createSession.tmase"),
|
sm.getString("sessionManagerImpl.createSession.tmase"),
|
||||||
maxActiveSessions);
|
this.maxActiveSessions);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recycle or create a Session instance
|
// Recycle or create a Session instance
|
||||||
@ -155,7 +155,7 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
session.setMaxInactiveInterval(this.maxInactiveInterval);
|
session.setMaxInactiveInterval(this.maxInactiveInterval);
|
||||||
String id = sessionId;
|
String id = sessionId;
|
||||||
session.setId(id);
|
session.setId(id);
|
||||||
sessionCounter++;
|
this.sessionCounter++;
|
||||||
|
|
||||||
return (session);
|
return (session);
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getActiveSessions() {
|
public int getActiveSessions() {
|
||||||
return sessions.size();
|
return this.sessions.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -185,17 +185,17 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
public void add(InternalSession session) {
|
public void add(InternalSession session) {
|
||||||
|
|
||||||
// 当第一次有session创建的时候,开启session清理线程
|
// 当第一次有session创建的时候,开启session清理线程
|
||||||
if (!backgroundProcessStarted.getAndSet(true)) {
|
if (!this.backgroundProcessStarted.getAndSet(true)) {
|
||||||
Thread t = new Thread(new Runnable() {
|
Thread t = new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
// 每秒清理一次
|
// 每秒清理一次
|
||||||
Thread.sleep(backgroundProcessorDelay * 1000l);
|
Thread.sleep(StandardSessionManager.this.backgroundProcessorDelay * 1000l);
|
||||||
backgroundProcess();
|
backgroundProcess();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
log.error("SessionManagerImpl.backgroundProcess error", e);
|
StandardSessionManager.this.log.error("SessionManagerImpl.backgroundProcess error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -204,12 +204,12 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
t.start();
|
t.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
sessions.put(session.getIdInternal(), session);
|
this.sessions.put(session.getIdInternal(), session);
|
||||||
int size = getActiveSessions();
|
int size = getActiveSessions();
|
||||||
if (size > maxActive) {
|
if (size > this.maxActive) {
|
||||||
synchronized (maxActiveUpdateLock) {
|
synchronized (this.maxActiveUpdateLock) {
|
||||||
if (size > maxActive) {
|
if (size > this.maxActive) {
|
||||||
maxActive = size;
|
this.maxActive = size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,14 +223,14 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
@Override
|
@Override
|
||||||
public InternalSession[] findSessions() {
|
public InternalSession[] findSessions() {
|
||||||
|
|
||||||
return sessions.values().toArray(new InternalSession[0]);
|
return this.sessions.values().toArray(new InternalSession[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void backgroundProcess() {
|
public void backgroundProcess() {
|
||||||
count = (count + 1) % processExpiresFrequency;
|
this.count = (this.count + 1) % this.processExpiresFrequency;
|
||||||
if (count == 0)
|
if (this.count == 0)
|
||||||
processExpires();
|
processExpires();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,17 +243,17 @@ public class StandardSessionManager implements WxSessionManager, InternalSession
|
|||||||
InternalSession sessions[] = findSessions();
|
InternalSession sessions[] = findSessions();
|
||||||
int expireHere = 0;
|
int expireHere = 0;
|
||||||
|
|
||||||
if (log.isDebugEnabled())
|
if (this.log.isDebugEnabled())
|
||||||
log.debug("Start expire sessions {} at {} sessioncount {}", getName(), timeNow, sessions.length);
|
this.log.debug("Start expire sessions {} at {} sessioncount {}", getName(), timeNow, sessions.length);
|
||||||
for (int i = 0; i < sessions.length; i++) {
|
for (int i = 0; i < sessions.length; i++) {
|
||||||
if (sessions[i] != null && !sessions[i].isValid()) {
|
if (sessions[i] != null && !sessions[i].isValid()) {
|
||||||
expireHere++;
|
expireHere++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
long timeEnd = System.currentTimeMillis();
|
long timeEnd = System.currentTimeMillis();
|
||||||
if (log.isDebugEnabled())
|
if (this.log.isDebugEnabled())
|
||||||
log.debug("End expire sessions {} processingTime {} expired sessions: {}", getName(), timeEnd - timeNow, expireHere);
|
this.log.debug("End expire sessions {} processingTime {} expired sessions: {}", getName(), timeEnd - timeNow, expireHere);
|
||||||
processingTime += (timeEnd - timeNow);
|
this.processingTime += (timeEnd - timeNow);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public class TooManyActiveSessionsException
|
|||||||
int maxActive) {
|
int maxActive) {
|
||||||
super(message);
|
super(message);
|
||||||
|
|
||||||
maxActiveSessions = maxActive;
|
this.maxActiveSessions = maxActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,6 +49,6 @@ public class TooManyActiveSessionsException
|
|||||||
* @return The maximum number of sessions allowed by the session manager.
|
* @return The maximum number of sessions allowed by the session manager.
|
||||||
*/
|
*/
|
||||||
public int getMaxActiveSessions() {
|
public int getMaxActiveSessions() {
|
||||||
return maxActiveSessions;
|
return this.maxActiveSessions;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class LogExceptionHandler implements WxErrorExceptionHandler {
|
|||||||
@Override
|
@Override
|
||||||
public void handle(WxErrorException e) {
|
public void handle(WxErrorException e) {
|
||||||
|
|
||||||
log.error("Error happens", e);
|
this.log.error("Error happens", e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,24 +3,24 @@ package me.chanjar.weixin.common.util.crypto;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ByteGroup {
|
public class ByteGroup {
|
||||||
ArrayList<Byte> byteContainer = new ArrayList<Byte>();
|
ArrayList<Byte> byteContainer = new ArrayList<>();
|
||||||
|
|
||||||
public byte[] toBytes() {
|
public byte[] toBytes() {
|
||||||
byte[] bytes = new byte[byteContainer.size()];
|
byte[] bytes = new byte[this.byteContainer.size()];
|
||||||
for (int i = 0; i < byteContainer.size(); i++) {
|
for (int i = 0; i < this.byteContainer.size(); i++) {
|
||||||
bytes[i] = byteContainer.get(i);
|
bytes[i] = this.byteContainer.get(i);
|
||||||
}
|
}
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ByteGroup addBytes(byte[] bytes) {
|
public ByteGroup addBytes(byte[] bytes) {
|
||||||
for (byte b : bytes) {
|
for (byte b : bytes) {
|
||||||
byteContainer.add(b);
|
this.byteContainer.add(b);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int size() {
|
public int size() {
|
||||||
return byteContainer.size();
|
return this.byteContainer.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class PKCS7Encoder {
|
|||||||
* @return 删除补位字符后的明文
|
* @return 删除补位字符后的明文
|
||||||
*/
|
*/
|
||||||
public static byte[] decode(byte[] decrypted) {
|
public static byte[] decode(byte[] decrypted) {
|
||||||
int pad = (int) decrypted[decrypted.length - 1];
|
int pad = decrypted[decrypted.length - 1];
|
||||||
if (pad < 1 || pad > 32) {
|
if (pad < 1 || pad > 32) {
|
||||||
pad = 0;
|
pad = 0;
|
||||||
}
|
}
|
||||||
|
@ -80,10 +80,10 @@ public class WxCryptUtil {
|
|||||||
*/
|
*/
|
||||||
public static String createSign(Map<String, String> packageParams,
|
public static String createSign(Map<String, String> packageParams,
|
||||||
String signKey) {
|
String signKey) {
|
||||||
SortedMap<String, String> sortedMap = new TreeMap<String, String>();
|
SortedMap<String, String> sortedMap = new TreeMap<>();
|
||||||
sortedMap.putAll(packageParams);
|
sortedMap.putAll(packageParams);
|
||||||
|
|
||||||
List<String> keys = new ArrayList<String>(packageParams.keySet());
|
List<String> keys = new ArrayList<>(packageParams.keySet());
|
||||||
Collections.sort(keys);
|
Collections.sort(keys);
|
||||||
|
|
||||||
StringBuffer toSign = new StringBuffer();
|
StringBuffer toSign = new StringBuffer();
|
||||||
@ -131,7 +131,7 @@ public class WxCryptUtil {
|
|||||||
String nonce = genRandomStr();
|
String nonce = genRandomStr();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String signature = SHA1.gen(token, timeStamp, nonce, encryptedXml);
|
String signature = SHA1.gen(this.token, timeStamp, nonce, encryptedXml);
|
||||||
String result = generateXml(encryptedXml, signature, timeStamp, nonce);
|
String result = generateXml(encryptedXml, signature, timeStamp, nonce);
|
||||||
return result;
|
return result;
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
@ -151,7 +151,7 @@ public class WxCryptUtil {
|
|||||||
byte[] plainTextBytes = plainText.getBytes(CHARSET);
|
byte[] plainTextBytes = plainText.getBytes(CHARSET);
|
||||||
byte[] bytesOfSizeInNetworkOrder = number2BytesInNetworkOrder(
|
byte[] bytesOfSizeInNetworkOrder = number2BytesInNetworkOrder(
|
||||||
plainTextBytes.length);
|
plainTextBytes.length);
|
||||||
byte[] appIdBytes = appidOrCorpid.getBytes(CHARSET);
|
byte[] appIdBytes = this.appidOrCorpid.getBytes(CHARSET);
|
||||||
|
|
||||||
// randomStr + networkBytesOrder + text + appid
|
// randomStr + networkBytesOrder + text + appid
|
||||||
byteCollector.addBytes(randomStringBytes);
|
byteCollector.addBytes(randomStringBytes);
|
||||||
@ -169,8 +169,8 @@ public class WxCryptUtil {
|
|||||||
try {
|
try {
|
||||||
// 设置加密模式为AES的CBC模式
|
// 设置加密模式为AES的CBC模式
|
||||||
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
||||||
SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
|
SecretKeySpec keySpec = new SecretKeySpec(this.aesKey, "AES");
|
||||||
IvParameterSpec iv = new IvParameterSpec(aesKey, 0, 16);
|
IvParameterSpec iv = new IvParameterSpec(this.aesKey, 0, 16);
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
|
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
|
||||||
|
|
||||||
// 加密
|
// 加密
|
||||||
@ -207,7 +207,7 @@ public class WxCryptUtil {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// 验证安全签名
|
// 验证安全签名
|
||||||
String signature = SHA1.gen(token, timeStamp, nonce, cipherText);
|
String signature = SHA1.gen(this.token, timeStamp, nonce, cipherText);
|
||||||
if (!signature.equals(msgSignature)) {
|
if (!signature.equals(msgSignature)) {
|
||||||
throw new RuntimeException("加密消息签名校验失败");
|
throw new RuntimeException("加密消息签名校验失败");
|
||||||
}
|
}
|
||||||
@ -231,9 +231,9 @@ public class WxCryptUtil {
|
|||||||
try {
|
try {
|
||||||
// 设置解密模式为AES的CBC模式
|
// 设置解密模式为AES的CBC模式
|
||||||
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
||||||
SecretKeySpec key_spec = new SecretKeySpec(aesKey, "AES");
|
SecretKeySpec key_spec = new SecretKeySpec(this.aesKey, "AES");
|
||||||
IvParameterSpec iv = new IvParameterSpec(
|
IvParameterSpec iv = new IvParameterSpec(
|
||||||
Arrays.copyOfRange(aesKey, 0, 16));
|
Arrays.copyOfRange(this.aesKey, 0, 16));
|
||||||
cipher.init(Cipher.DECRYPT_MODE, key_spec, iv);
|
cipher.init(Cipher.DECRYPT_MODE, key_spec, iv);
|
||||||
|
|
||||||
// 使用BASE64对密文进行解码
|
// 使用BASE64对密文进行解码
|
||||||
@ -264,7 +264,7 @@ public class WxCryptUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// appid不相同的情况
|
// appid不相同的情况
|
||||||
if (!from_appid.equals(appidOrCorpid)) {
|
if (!from_appid.equals(this.appidOrCorpid)) {
|
||||||
throw new RuntimeException("AppID不正确");
|
throw new RuntimeException("AppID不正确");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ public class InputStreamResponseHandler implements ResponseHandler<InputStream>
|
|||||||
|
|
||||||
public static final ResponseHandler<InputStream> INSTANCE = new InputStreamResponseHandler();
|
public static final ResponseHandler<InputStream> INSTANCE = new InputStreamResponseHandler();
|
||||||
|
|
||||||
|
@Override
|
||||||
public InputStream handleResponse(final HttpResponse response) throws IOException {
|
public InputStream handleResponse(final HttpResponse response) throws IOException {
|
||||||
final StatusLine statusLine = response.getStatusLine();
|
final StatusLine statusLine = response.getStatusLine();
|
||||||
final HttpEntity entity = response.getEntity();
|
final HttpEntity entity = response.getEntity();
|
||||||
|
@ -70,7 +70,7 @@ public class MediaDownloadRequestExecutor implements RequestExecutor<File, Strin
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String[] name_ext = fileName.split("\\.");
|
String[] name_ext = fileName.split("\\.");
|
||||||
File localFile = FileUtils.createTmpFile(inputStream, name_ext[0], name_ext[1], tmpDirFile);
|
File localFile = FileUtils.createTmpFile(inputStream, name_ext[0], name_ext[1], this.tmpDirFile);
|
||||||
return localFile;
|
return localFile;
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -35,7 +35,7 @@ public class URIUtil {
|
|||||||
private static String getHex(byte buf[]) {
|
private static String getHex(byte buf[]) {
|
||||||
StringBuilder o = new StringBuilder(buf.length * 3);
|
StringBuilder o = new StringBuilder(buf.length * 3);
|
||||||
for (int i = 0; i < buf.length; i++) {
|
for (int i = 0; i < buf.length; i++) {
|
||||||
int n = (int) buf[i] & 0xff;
|
int n = buf[i] & 0xff;
|
||||||
o.append("%");
|
o.append("%");
|
||||||
if (n < 0x10) {
|
if (n < 0x10) {
|
||||||
o.append("0");
|
o.append("0");
|
||||||
|
@ -19,6 +19,7 @@ public class Utf8ResponseHandler implements ResponseHandler<String> {
|
|||||||
|
|
||||||
public static final ResponseHandler<String> INSTANCE = new Utf8ResponseHandler();
|
public static final ResponseHandler<String> INSTANCE = new Utf8ResponseHandler();
|
||||||
|
|
||||||
|
@Override
|
||||||
public String handleResponse(final HttpResponse response) throws IOException {
|
public String handleResponse(final HttpResponse response) throws IOException {
|
||||||
final StatusLine statusLine = response.getStatusLine();
|
final StatusLine statusLine = response.getStatusLine();
|
||||||
final HttpEntity entity = response.getEntity();
|
final HttpEntity entity = response.getEntity();
|
||||||
|
@ -18,6 +18,7 @@ import java.lang.reflect.Type;
|
|||||||
*/
|
*/
|
||||||
public class WxAccessTokenAdapter implements JsonDeserializer<WxAccessToken> {
|
public class WxAccessTokenAdapter implements JsonDeserializer<WxAccessToken> {
|
||||||
|
|
||||||
|
@Override
|
||||||
public WxAccessToken deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
public WxAccessToken deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
WxAccessToken accessToken = new WxAccessToken();
|
WxAccessToken accessToken = new WxAccessToken();
|
||||||
JsonObject accessTokenJsonObject = json.getAsJsonObject();
|
JsonObject accessTokenJsonObject = json.getAsJsonObject();
|
||||||
|
@ -18,6 +18,7 @@ import java.lang.reflect.Type;
|
|||||||
*/
|
*/
|
||||||
public class WxErrorAdapter implements JsonDeserializer<WxError> {
|
public class WxErrorAdapter implements JsonDeserializer<WxError> {
|
||||||
|
|
||||||
|
@Override
|
||||||
public WxError deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
public WxError deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
WxError wxError = new WxError();
|
WxError wxError = new WxError();
|
||||||
JsonObject wxErrorJsonObject = json.getAsJsonObject();
|
JsonObject wxErrorJsonObject = json.getAsJsonObject();
|
||||||
|
@ -18,6 +18,7 @@ import java.lang.reflect.Type;
|
|||||||
*/
|
*/
|
||||||
public class WxMediaUploadResultAdapter implements JsonDeserializer<WxMediaUploadResult> {
|
public class WxMediaUploadResultAdapter implements JsonDeserializer<WxMediaUploadResult> {
|
||||||
|
|
||||||
|
@Override
|
||||||
public WxMediaUploadResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
public WxMediaUploadResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
WxMediaUploadResult uploadResult = new WxMediaUploadResult();
|
WxMediaUploadResult uploadResult = new WxMediaUploadResult();
|
||||||
JsonObject uploadResultJsonObject = json.getAsJsonObject();
|
JsonObject uploadResultJsonObject = json.getAsJsonObject();
|
||||||
|
@ -29,6 +29,7 @@ import me.chanjar.weixin.common.bean.menu.WxMenuRule;
|
|||||||
*/
|
*/
|
||||||
public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializer<WxMenu> {
|
public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializer<WxMenu> {
|
||||||
|
|
||||||
|
@Override
|
||||||
public JsonElement serialize(WxMenu menu, Type typeOfSrc, JsonSerializationContext context) {
|
public JsonElement serialize(WxMenu menu, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
JsonObject json = new JsonObject();
|
JsonObject json = new JsonObject();
|
||||||
|
|
||||||
@ -75,6 +76,7 @@ public class WxMenuGsonAdapter implements JsonSerializer<WxMenu>, JsonDeserializ
|
|||||||
return matchRule;
|
return matchRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public WxMenu deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
public WxMenu deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
/*
|
/*
|
||||||
* 操蛋的微信
|
* 操蛋的微信
|
||||||
|
@ -47,7 +47,7 @@ import java.util.*;
|
|||||||
public class StringManager {
|
public class StringManager {
|
||||||
|
|
||||||
private static final Map<String, Map<Locale, StringManager>> managers =
|
private static final Map<String, Map<Locale, StringManager>> managers =
|
||||||
new Hashtable<String, Map<Locale, StringManager>>();
|
new Hashtable<>();
|
||||||
private static int LOCALE_CACHE_SIZE = 10;
|
private static int LOCALE_CACHE_SIZE = 10;
|
||||||
/**
|
/**
|
||||||
* The ResourceBundle for this StringManager.
|
* The ResourceBundle for this StringManager.
|
||||||
@ -81,10 +81,10 @@ public class StringManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bundle = bnd;
|
this.bundle = bnd;
|
||||||
// Get the actual locale, which may be different from the requested one
|
// Get the actual locale, which may be different from the requested one
|
||||||
if (bundle != null) {
|
if (this.bundle != null) {
|
||||||
Locale bundleLocale = bundle.getLocale();
|
Locale bundleLocale = this.bundle.getLocale();
|
||||||
if (bundleLocale.equals(Locale.ROOT)) {
|
if (bundleLocale.equals(Locale.ROOT)) {
|
||||||
this.locale = Locale.ENGLISH;
|
this.locale = Locale.ENGLISH;
|
||||||
} else {
|
} else {
|
||||||
@ -192,8 +192,8 @@ public class StringManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// Avoid NPE if bundle is null and treat it like an MRE
|
// Avoid NPE if bundle is null and treat it like an MRE
|
||||||
if (bundle != null) {
|
if (this.bundle != null) {
|
||||||
str = bundle.getString(key);
|
str = this.bundle.getString(key);
|
||||||
}
|
}
|
||||||
} catch (MissingResourceException mre) {
|
} catch (MissingResourceException mre) {
|
||||||
//bad: shouldn't mask an exception the following way:
|
//bad: shouldn't mask an exception the following way:
|
||||||
@ -227,7 +227,7 @@ public class StringManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MessageFormat mf = new MessageFormat(value);
|
MessageFormat mf = new MessageFormat(value);
|
||||||
mf.setLocale(locale);
|
mf.setLocale(this.locale);
|
||||||
return mf.format(args, new StringBuffer(), null).toString();
|
return mf.format(args, new StringBuffer(), null).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,6 +235,6 @@ public class StringManager {
|
|||||||
* Identify the Locale this StringManager is associated with
|
* Identify the Locale this StringManager is associated with
|
||||||
*/
|
*/
|
||||||
public Locale getLocale() {
|
public Locale getLocale() {
|
||||||
return locale;
|
return this.locale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,9 +25,9 @@ public class XStreamInitializer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void writeText(QuickWriter writer, String text) {
|
protected void writeText(QuickWriter writer, String text) {
|
||||||
if (text.startsWith(PREFIX_CDATA) && text.endsWith(SUFFIX_CDATA)) {
|
if (text.startsWith(this.PREFIX_CDATA) && text.endsWith(this.SUFFIX_CDATA)) {
|
||||||
writer.write(text);
|
writer.write(text);
|
||||||
} else if (text.startsWith(PREFIX_MEDIA_ID) && text.endsWith(SUFFIX_MEDIA_ID)) {
|
} else if (text.startsWith(this.PREFIX_MEDIA_ID) && text.endsWith(this.SUFFIX_MEDIA_ID)) {
|
||||||
writer.write(text);
|
writer.write(text);
|
||||||
} else {
|
} else {
|
||||||
super.writeText(writer, text);
|
super.writeText(writer, text);
|
||||||
|
@ -34,8 +34,8 @@ public class WxCryptUtilTest {
|
|||||||
String afterAesEncrypt2 = "jn1L23DB+6ELqJ+6bruv23M2GmYfkv0xBh2h+XTBOKVKcgDFHle6gqcZ1cZrk3e1qjPQ1F4RsLWzQRG9udbKWesxlkupqcEcW7ZQweImX9+wLMa0GaUzpkycA8+IamDBxn5loLgZpnS7fVAbExOkK5DYHBmv5tptA9tklE/fTIILHR8HLXa5nQvFb3tYPKAlHF3rtTeayNf0QuM+UW/wM9enGIDIJHF7CLHiDNAYxr+r+OrJCmPQyTy8cVWlu9iSvOHPT/77bZqJucQHQ04sq7KZI27OcqpQNSto2OdHCoTccjggX5Z9Mma0nMJBU+jLKJ38YB1fBIz+vBzsYjrTmFQ44YfeEuZ+xRTQwr92vhA9OxchWVINGC50qE/6lmkwWTwGX9wtQpsJKhP+oS7rvTY8+VdzETdfakjkwQ5/Xka042OlUb1/slTwo4RscuQ+RdxSGvDahxAJ6+EAjLt9d8igHngxIbf6YyqqROxuxqIeIch3CssH/LqRs+iAcILvApYZckqmA7FNERspKA5f8GoJ9sv8xmGvZ9Yrf57cExWtnX8aCMMaBropU/1k+hKP5LVdzbWCG0hGwx/dQudYR/eXp3P0XxjlFiy+9DMlaFExWUZQDajPkdPrEeOwofJb";
|
String afterAesEncrypt2 = "jn1L23DB+6ELqJ+6bruv23M2GmYfkv0xBh2h+XTBOKVKcgDFHle6gqcZ1cZrk3e1qjPQ1F4RsLWzQRG9udbKWesxlkupqcEcW7ZQweImX9+wLMa0GaUzpkycA8+IamDBxn5loLgZpnS7fVAbExOkK5DYHBmv5tptA9tklE/fTIILHR8HLXa5nQvFb3tYPKAlHF3rtTeayNf0QuM+UW/wM9enGIDIJHF7CLHiDNAYxr+r+OrJCmPQyTy8cVWlu9iSvOHPT/77bZqJucQHQ04sq7KZI27OcqpQNSto2OdHCoTccjggX5Z9Mma0nMJBU+jLKJ38YB1fBIz+vBzsYjrTmFQ44YfeEuZ+xRTQwr92vhA9OxchWVINGC50qE/6lmkwWTwGX9wtQpsJKhP+oS7rvTY8+VdzETdfakjkwQ5/Xka042OlUb1/slTwo4RscuQ+RdxSGvDahxAJ6+EAjLt9d8igHngxIbf6YyqqROxuxqIeIch3CssH/LqRs+iAcILvApYZckqmA7FNERspKA5f8GoJ9sv8xmGvZ9Yrf57cExWtnX8aCMMaBropU/1k+hKP5LVdzbWCG0hGwx/dQudYR/eXp3P0XxjlFiy+9DMlaFExWUZQDajPkdPrEeOwofJb";
|
||||||
|
|
||||||
public void testNormal() throws ParserConfigurationException, SAXException, IOException {
|
public void testNormal() throws ParserConfigurationException, SAXException, IOException {
|
||||||
WxCryptUtil pc = new WxCryptUtil(token, encodingAesKey, appId);
|
WxCryptUtil pc = new WxCryptUtil(this.token, this.encodingAesKey, this.appId);
|
||||||
String encryptedXml = pc.encrypt(replyMsg);
|
String encryptedXml = pc.encrypt(this.replyMsg);
|
||||||
|
|
||||||
System.out.println(encryptedXml);
|
System.out.println(encryptedXml);
|
||||||
|
|
||||||
@ -56,31 +56,31 @@ public class WxCryptUtilTest {
|
|||||||
String nonce = root.getElementsByTagName("Nonce").item(0).getTextContent();
|
String nonce = root.getElementsByTagName("Nonce").item(0).getTextContent();
|
||||||
System.out.println(nonce);
|
System.out.println(nonce);
|
||||||
|
|
||||||
String messageText = String.format(xmlFormat, cipherText);
|
String messageText = String.format(this.xmlFormat, cipherText);
|
||||||
System.out.println(messageText);
|
System.out.println(messageText);
|
||||||
|
|
||||||
// 第三方收到企业号平台发送的消息
|
// 第三方收到企业号平台发送的消息
|
||||||
String plainMessage = pc.decrypt(cipherText);
|
String plainMessage = pc.decrypt(cipherText);
|
||||||
System.out.println(plainMessage);
|
System.out.println(plainMessage);
|
||||||
|
|
||||||
assertEquals(plainMessage, replyMsg);
|
assertEquals(plainMessage, this.replyMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAesEncrypt() {
|
public void testAesEncrypt() {
|
||||||
WxCryptUtil pc = new WxCryptUtil(token, encodingAesKey, appId);
|
WxCryptUtil pc = new WxCryptUtil(this.token, this.encodingAesKey, this.appId);
|
||||||
assertEquals(pc.encrypt(randomStr, replyMsg), afterAesEncrypt);
|
assertEquals(pc.encrypt(this.randomStr, this.replyMsg), this.afterAesEncrypt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAesEncrypt2() {
|
public void testAesEncrypt2() {
|
||||||
WxCryptUtil pc = new WxCryptUtil(token, encodingAesKey, appId);
|
WxCryptUtil pc = new WxCryptUtil(this.token, this.encodingAesKey, this.appId);
|
||||||
assertEquals(pc.encrypt(randomStr, replyMsg2), afterAesEncrypt2);
|
assertEquals(pc.encrypt(this.randomStr, this.replyMsg2), this.afterAesEncrypt2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testValidateSignatureError() throws ParserConfigurationException, SAXException,
|
public void testValidateSignatureError() throws ParserConfigurationException, SAXException,
|
||||||
IOException {
|
IOException {
|
||||||
try {
|
try {
|
||||||
WxCryptUtil pc = new WxCryptUtil(token, encodingAesKey, appId);
|
WxCryptUtil pc = new WxCryptUtil(this.token, this.encodingAesKey, this.appId);
|
||||||
String afterEncrpt = pc.encrypt(replyMsg);
|
String afterEncrpt = pc.encrypt(this.replyMsg);
|
||||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||||
DocumentBuilder db = dbf.newDocumentBuilder();
|
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||||
StringReader sr = new StringReader(afterEncrpt);
|
StringReader sr = new StringReader(afterEncrpt);
|
||||||
@ -91,8 +91,8 @@ public class WxCryptUtilTest {
|
|||||||
NodeList nodelist1 = root.getElementsByTagName("Encrypt");
|
NodeList nodelist1 = root.getElementsByTagName("Encrypt");
|
||||||
|
|
||||||
String encrypt = nodelist1.item(0).getTextContent();
|
String encrypt = nodelist1.item(0).getTextContent();
|
||||||
String fromXML = String.format(xmlFormat, encrypt);
|
String fromXML = String.format(this.xmlFormat, encrypt);
|
||||||
pc.decrypt("12345", timestamp, nonce, fromXML); // 这里签名错误
|
pc.decrypt("12345", this.timestamp, this.nonce, fromXML); // 这里签名错误
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
assertEquals(e.getMessage(), "加密消息签名校验失败");
|
assertEquals(e.getMessage(), "加密消息签名校验失败");
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user