From db82a0eb7fcfec6f714bd9df83df80822d6547c2 Mon Sep 17 00:00:00 2001 From: zhou-hao Date: Tue, 15 May 2018 22:28:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../token/DefaultUserTokenManager.java | 6 ++--- .../web/authorization/token/TokenState.java | 8 ++++++- .../web/authorization/token/UserToken.java | 23 ++++++++++++++++--- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/DefaultUserTokenManager.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/DefaultUserTokenManager.java index d4e55d0bb..67359103e 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/DefaultUserTokenManager.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/DefaultUserTokenManager.java @@ -135,7 +135,7 @@ public class DefaultUserTokenManager implements UserTokenManager { return false; } for (UserToken userToken : getByUserId(userId)) { - if (userToken.isEffective()) { + if (userToken.isNormal()) { return true; } } @@ -247,7 +247,7 @@ public class DefaultUserTokenManager implements UserTokenManager { .filter(userToken -> type.equals(userToken.getType())) .map(SimpleUserToken.class::cast) .peek(this::checkTimeout) - .anyMatch(UserToken::isEffective); + .anyMatch(UserToken::isNormal); if (hasAnotherToken) { throw new AccessDenyException("该用户已在其他地方登陆"); } @@ -261,7 +261,7 @@ public class DefaultUserTokenManager implements UserTokenManager { } } } - detail.setState(TokenState.effective); + detail.setState(TokenState.normal); tokenStorage.put(token, detail); getUserToken(userId).add(token); diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/TokenState.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/TokenState.java index 95ac6deb1..1e627b108 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/TokenState.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/TokenState.java @@ -13,8 +13,14 @@ public enum TokenState implements EnumDict { /** * 正常,有效 */ + @Deprecated effective("effective", "正常"), + /** + * 正常,有效 + */ + normal("normal","正常"), + /** * 已被禁止访问 */ @@ -27,6 +33,7 @@ public enum TokenState implements EnumDict { /** * 已被踢下线 + * @see AllopatricLoginMode#offlineOther */ offline("offline", "用户已在其他地方登录"), @@ -35,7 +42,6 @@ public enum TokenState implements EnumDict { */ lock("lock", "登录状态已被锁定"); - private String value; private String text; diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserToken.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserToken.java index c28d061a2..7d7c43dbe 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserToken.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserToken.java @@ -54,8 +54,13 @@ public interface UserToken extends Serializable, Comparable { /** * @return 是否正常 */ + @Deprecated default boolean isEffective() { - return getState() == TokenState.effective; + return isNormal(); + } + + default boolean isNormal() { + return getState() == TokenState.normal; } /** @@ -72,8 +77,17 @@ public interface UserToken extends Serializable, Comparable { return getState() == TokenState.offline; } + default boolean isLock() { + return getState() == TokenState.lock; + } + + default boolean isDeny() { + return getState() == TokenState.deny; + } + + default boolean validate() { - if (!isEffective()) { + if (!isNormal()) { throw new UnAuthorizedException(getState()); } return true; @@ -81,6 +95,9 @@ public interface UserToken extends Serializable, Comparable { @Override default int compareTo(UserToken target) { - return Long.valueOf(getSignInTime()).compareTo(target.getSignInTime()); + if (target == null) { + return 0; + } + return Long.compare(getSignInTime(), target.getSignInTime()); } }