Browse Source

优化命名

zhouhao 8 years ago
parent
commit
d8843a115c
14 changed files with 127 additions and 81 deletions
  1. 6 4
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Authorization.java
  2. 7 7
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationHolder.java
  3. 43 0
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthenticationInitializeService.java
  4. 3 3
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationSupplier.java
  5. 11 20
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Permission.java
  6. 14 7
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/access/FieldAccessConfig.java
  7. 2 0
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/Authorize.java
  8. 6 6
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresDataAccess.java
  9. 5 4
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresExpression.java
  10. 6 7
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresFieldAccess.java
  11. 6 6
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/event/AuthorizationExitEvent.java
  12. 7 7
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/event/AuthorizationSuccessEvent.java
  13. 4 5
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresDuplicate.java
  14. 7 5
      hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationInitializeService.java

+ 6 - 4
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Authorization.java

@@ -20,9 +20,7 @@ package org.hswebframework.web.authorization;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
-import java.util.function.Supplier;
 
 /**
  * 用户授权信息,当前登录用户的权限信息,包括用户的基本信息,角色,权限集合等常用信息<br>
@@ -33,10 +31,11 @@ import java.util.function.Supplier;
  * </ul>
  *
  * @author zhouhao
- * @see AuthorizationHolder
+ * @see AuthenticationHolder
+ * @see AuthenticationManager
  * @since 3.0
  */
-public interface Authorization extends Serializable {
+public interface Authentication extends Serializable {
 
     /**
      * @return 用户信息
@@ -97,6 +96,7 @@ public interface Authorization extends Serializable {
      *
      * @param name   属性名称
      * @param object 属性值
+     * @see AuthenticationManager#sync(Authentication)
      */
     void setAttribute(String name, Serializable object);
 
@@ -104,6 +104,7 @@ public interface Authorization extends Serializable {
      * 设置多个属性值,参数为map类型,key为属性名称,value为属性值
      *
      * @param attributes 属性值map
+     * @see AuthenticationManager#sync(Authentication)
      */
     void setAttributes(Map<String, Serializable> attributes);
 
@@ -113,6 +114,7 @@ public interface Authorization extends Serializable {
      * @param name 属性名
      * @param <T>  被删除的值类型
      * @return 被删除的值
+     * @see AuthenticationManager#sync(Authentication)
      */
     <T extends Serializable> T removeAttributes(String name);
 

+ 7 - 7
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationHolder.java

@@ -30,24 +30,24 @@ package org.hswebframework.web.authorization;
  * </pre>
  *
  * @author zhouhao
- * @see AuthorizationSupplier
+ * @see AuthenticationSupplier
  * @since 3.0
  */
-public final class AuthorizationHolder {
-    private static AuthorizationSupplier supplier;
+public final class AuthenticationHolder {
+    private static AuthenticationSupplier supplier;
 
     /**
      * @return 当前登录用户信息
      */
-    public static Authorization get() {
+    public static Authentication get() {
         if (null == supplier) {
             throw new UnsupportedOperationException("AuthorizationSupplier is null!");
         }
         return supplier.get();
     }
 
-    public static void setSupplier(AuthorizationSupplier supplier) {
-        if (null == AuthorizationHolder.supplier)
-            AuthorizationHolder.supplier = supplier;
+    public static void setSupplier(AuthenticationSupplier supplier) {
+        if (null == AuthenticationHolder.supplier)
+            AuthenticationHolder.supplier = supplier;
     }
 }

+ 43 - 0
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthenticationInitializeService.java

@@ -0,0 +1,43 @@
+/*
+ *  Copyright 2016 http://www.hswebframework.org
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *
+ */
+
+package org.hswebframework.web.authorization;
+
+/**
+ * 授权信息初始化服务接口,使用该接口初始化用的权限信息
+ *
+ * @author zhouhao
+ * @since 3.0
+ */
+public interface AuthenticationInitializeService {
+    /**
+     * 根据用户ID初始化权限信息
+     *
+     * @param userId 用户ID
+     * @return 权限信息
+     */
+    Authentication initUserAuthorization(String userId);
+
+    /**
+     * 将指定的用户初始化为超级管理员权限
+     *
+     * @param userId 用户ID
+     * @return 权限信息
+     */
+    Authentication initAdminAuthorization(String userId);
+}

+ 3 - 3
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationSupplier.java

@@ -22,8 +22,8 @@ import java.util.function.Supplier;
 /**
  * @author zhouhao
  * @see Supplier
- * @see Authorization
- * @see AuthorizationHolder
+ * @see Authentication
+ * @see AuthenticationHolder
  */
-public interface AuthorizationSupplier extends Supplier<Authorization> {
+public interface AuthenticationSupplier extends Supplier<Authentication> {
 }

+ 11 - 20
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Permission.java

@@ -17,8 +17,8 @@
 
 package org.hswebframework.web.authorization;
 
-import org.hswebframework.web.authorization.access.DataAccess;
-import org.hswebframework.web.authorization.access.FieldAccess;
+import org.hswebframework.web.authorization.access.DataAccessConfig;
+import org.hswebframework.web.authorization.access.FieldAccessConfig;
 
 import java.io.Serializable;
 import java.util.Set;
@@ -28,11 +28,10 @@ import java.util.Set;
  * 是用户权限的重要接口。
  *
  * @author zhouhao
- * @see Authorization
+ * @see Authentication
  * @since 3.0
  */
 public interface Permission extends Serializable {
-
     /**
      * 查询
      */
@@ -73,32 +72,24 @@ public interface Permission extends Serializable {
     String ACTION_ENABLE = "enable";
 
     /**
-     * 获取权限ID,权限的唯一标识
-     *
-     * @return id
+     * @return 权限ID,权限的唯一标识
      */
     String getId();
 
     /**
-     * 获取用户对此权限的可操作事件(按钮)
-     *
-     * @return 操作事件(按钮)集合
+     * @return 用户对此权限的可操作事件(按钮)
      */
     Set<String> getActions();
 
     /**
-     * 获取用户对此权限持有的字段权限信息,用于字段级别的控制
-     *
-     * @return 可操作字段集合
-     * @see FieldAccess
+     * @return 用户对此权限持有的字段权限信息, 用于字段级别的控制
+     * @see FieldAccessConfig
      */
-    Set<FieldAccess> getFieldAccesses();
+    Set<FieldAccessConfig> getFieldAccesses();
 
     /**
-     * 获取用户对此权限持有的数据权限信息,用于数据级别的控制
-     *
-     * @return 数据权限信息
-     * @see DataAccess
+     * @return 用户对此权限持有的数据权限信息, 用于数据级别的控制
+     * @see DataAccessConfig
      */
-    Set<DataAccess> getDataAccesses();
+    Set<DataAccessConfig> getDataAccessConfigs();
 }

+ 14 - 7
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/access/FieldAccessConfig.java

@@ -10,18 +10,25 @@ import java.util.Set;
  * @see FieldAccessController
  */
 public interface FieldAccessConfig extends Serializable {
+
     /**
-     * 获取字段名称,字段名称支持嵌套如: user.info.name
-     * 此值为不能操作的字段
-     *
-     * @return 字段名称
+     * @return 要控制的字段名称, 字段名称支持嵌套如: user.info.name
      */
     String getField();
 
     /**
-     * 对此字段的操作权限
-     *
-     * @return 操作权限集合
+     * @return 对此字段的操作权限
+     * @see org.hswebframework.web.authorization.Permission#ACTION_QUERY
+     * @see org.hswebframework.web.authorization.Permission#ACTION_UPDATE
      */
     Set<String> getActions();
+
+    default Type getType() {
+        return Type.DENY;
+    }
+
+    enum Type {
+        //目前之支持 deny
+        DENY
+    }
 }

+ 2 - 0
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/Authorize.java

@@ -21,6 +21,7 @@ package org.hswebframework.web.authorization.annotation;
 import org.hswebframework.web.authorization.Permission;
 import org.hswebframework.web.authorization.Role;
 import org.hswebframework.web.authorization.User;
+import org.hswebframework.web.boost.aop.context.RecordAopContext;
 
 import java.lang.annotation.*;
 
@@ -34,6 +35,7 @@ import java.lang.annotation.*;
 @Retention(RetentionPolicy.RUNTIME)
 @Inherited
 @Documented
+@RecordAopContext
 public @interface Authorize {
 
     /**

+ 6 - 6
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresDataAccess.java

@@ -17,14 +17,12 @@
 
 package org.hswebframework.web.authorization.annotation;
 
-import org.hswebframework.web.authorization.access.DataAccess;
+import org.hswebframework.web.authorization.access.DataAccessConfig;
 import org.hswebframework.web.authorization.access.DataAccessController;
 import org.hswebframework.web.authorization.Permission;
+import org.hswebframework.web.boost.aop.context.RecordAopContext;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * 数据级权限控制注解,用于进行需要数据级别权限控制的声明.
@@ -38,6 +36,8 @@ import java.lang.annotation.Target;
  */
 @Target({ElementType.TYPE, ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
+@Documented
+@RecordAopContext
 public @interface RequiresDataAccess {
 
     /**
@@ -48,7 +48,7 @@ public @interface RequiresDataAccess {
 
     /**
      * @return action array
-     * @see DataAccess#getAction()
+     * @see DataAccessConfig#getAction()
      */
     String[] action() default {};
 

+ 5 - 4
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresExpression.java

@@ -17,10 +17,9 @@
 
 package org.hswebframework.web.authorization.annotation;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import org.hswebframework.web.boost.aop.context.RecordAopContext;
+
+import java.lang.annotation.*;
 
 /**
  * 使用表达式进行验证,默认支持spel,ognl表达式。
@@ -30,6 +29,8 @@ import java.lang.annotation.Target;
  */
 @Target({ElementType.TYPE, ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
+@Documented
+@RecordAopContext
 public @interface RequiresExpression {
 
     /**

+ 6 - 7
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresFieldAccess.java

@@ -18,13 +18,10 @@
 package org.hswebframework.web.authorization.annotation;
 
 import org.hswebframework.web.authorization.Permission;
-import org.hswebframework.web.authorization.access.DataAccessController;
-import org.hswebframework.web.authorization.access.FieldAccess;
+import org.hswebframework.web.authorization.access.FieldAccessConfig;
+import org.hswebframework.web.boost.aop.context.RecordAopContext;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
 
 /**
  * 字段级权限控制注解,用于进行需要字段级别权限控制的声明.
@@ -38,6 +35,8 @@ import java.lang.annotation.Target;
  */
 @Target({ElementType.TYPE, ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
+@Documented
+@RecordAopContext
 public @interface RequiresFieldAccess {
 
     /**
@@ -48,7 +47,7 @@ public @interface RequiresFieldAccess {
 
     /**
      * @return action
-     * @see FieldAccess#getActions()
+     * @see FieldAccessConfig#getActions()
      */
     String action();
 

+ 6 - 6
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/event/AuthorizationExitEvent.java

@@ -18,7 +18,7 @@
 
 package org.hswebframework.web.authorization.listener.event;
 
-import org.hswebframework.web.authorization.Authorization;
+import org.hswebframework.web.authorization.Authentication;
 
 /**
  * 退出登录事件
@@ -26,13 +26,13 @@ import org.hswebframework.web.authorization.Authorization;
  * @author zhouhao
  */
 public class AuthorizationExitEvent implements AuthorizationEvent {
-    private Authorization authorization;
+    private Authentication authentication;
 
-    public AuthorizationExitEvent(Authorization authorization) {
-        this.authorization = authorization;
+    public AuthorizationExitEvent(Authentication authentication) {
+        this.authentication = authentication;
     }
 
-    public Authorization getAuthorization() {
-        return authorization;
+    public Authentication getAuthentication() {
+        return authentication;
     }
 }

+ 7 - 7
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/event/AuthorizationSuccessEvent.java

@@ -18,7 +18,7 @@
 
 package org.hswebframework.web.authorization.listener.event;
 
-import org.hswebframework.web.authorization.Authorization;
+import org.hswebframework.web.authorization.Authentication;
 
 import java.util.Optional;
 import java.util.function.Function;
@@ -27,21 +27,21 @@ import java.util.function.Function;
  * 授权成功事件,当授权成功时,触发此事件,并传入授权的信息
  *
  * @author zhouhao
- * @see Authorization
+ * @see Authentication
  * @since 3.0
  */
 public class AuthorizationSuccessEvent implements AuthorizationEvent {
-    private Authorization authorization;
+    private Authentication authentication;
 
     private Function<String,Object> parameterGetter;
 
-    public AuthorizationSuccessEvent(Authorization authorization, Function<String, Object> parameterGetter) {
-        this.authorization = authorization;
+    public AuthorizationSuccessEvent(Authentication authentication, Function<String, Object> parameterGetter) {
+        this.authentication = authentication;
         this.parameterGetter = parameterGetter;
     }
 
-    public Authorization getAuthorization() {
-        return authorization;
+    public Authentication getAuthentication() {
+        return authentication;
     }
 
     @SuppressWarnings("unchecked")

+ 4 - 5
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/annotation/RequiresDuplicate.java

@@ -16,10 +16,10 @@
  *
  */
 
-package org.hswebframework.web.authorization.annotation;
+package org.hswebframework.web.boost.validator.annotation;
 
-import org.hswebframework.web.authorization.Permission;
-import org.hswebframework.web.authorization.access.DataAccessConfig;
+
+import org.hswebframework.web.boost.aop.context.RecordAopContext;
 
 import java.lang.annotation.*;
 
@@ -31,17 +31,16 @@ import java.lang.annotation.*;
 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
+@RecordAopContext
 public @interface RequiresDuplicate {
 
     /**
      * @return permission id
-     * @see Permission#getId()
      */
     String permission();
 
     /**
      * @return action array
-     * @see DataAccessConfig#getAction()
      */
     String[] action() default {};
 

+ 7 - 5
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthorizationInitializeService.java

@@ -16,15 +16,17 @@
  *
  */
 
-package org.hswebframework.web.authorization;
+package org.hswebframework.web.service.authorization.simple;
 
 /**
- * TODO 完成注释
+ * 缓存所需常量
  *
  * @author zhouhao
  */
-public interface AuthorizationInitializeService {
-    Authorization initUserAuthorization(String userId);
+public interface CacheConstants {
+
+    String USER_CACHE_NAME = "user-";
+
+    String USER_AUTH_CACHE_NAME = "user-auth-";
 
-    Authorization initAdminAuthorization(String userId);
 }