zhouhao 8 سال پیش
والد
کامیت
c18e5ac940

+ 15 - 9
hsweb-examples/hsweb-examples-simple/src/main/java/org/hswebframework/web/example/simple/SpringBootExample.java

@@ -24,15 +24,15 @@ import org.hswebframework.web.authorization.Authentication;
 import org.hswebframework.web.authorization.Permission;
 import org.hswebframework.web.authorization.Permission;
 import org.hswebframework.web.authorization.access.DataAccessConfig;
 import org.hswebframework.web.authorization.access.DataAccessConfig;
 import org.hswebframework.web.authorization.oauth2.server.entity.OAuth2ClientEntity;
 import org.hswebframework.web.authorization.oauth2.server.entity.OAuth2ClientEntity;
+import org.hswebframework.web.authorization.simple.SimpleFieldFilterDataAccessConfig;
 import org.hswebframework.web.commons.entity.factory.EntityFactory;
 import org.hswebframework.web.commons.entity.factory.EntityFactory;
-import org.hswebframework.web.dao.oauth2.OAuth2ClientDao;
 import org.hswebframework.web.dao.datasource.DataSourceHolder;
 import org.hswebframework.web.dao.datasource.DataSourceHolder;
 import org.hswebframework.web.dao.datasource.DatabaseType;
 import org.hswebframework.web.dao.datasource.DatabaseType;
+import org.hswebframework.web.dao.oauth2.OAuth2ClientDao;
 import org.hswebframework.web.entity.authorization.*;
 import org.hswebframework.web.entity.authorization.*;
 import org.hswebframework.web.entity.authorization.bind.BindPermissionRoleEntity;
 import org.hswebframework.web.entity.authorization.bind.BindPermissionRoleEntity;
 import org.hswebframework.web.entity.authorization.bind.BindRoleUserEntity;
 import org.hswebframework.web.entity.authorization.bind.BindRoleUserEntity;
 import org.hswebframework.web.loggin.aop.EnableAccessLogger;
 import org.hswebframework.web.loggin.aop.EnableAccessLogger;
-import org.hswebframework.web.logging.AccessLoggerInfo;
 import org.hswebframework.web.logging.AccessLoggerListener;
 import org.hswebframework.web.logging.AccessLoggerListener;
 import org.hswebframework.web.service.authorization.PermissionService;
 import org.hswebframework.web.service.authorization.PermissionService;
 import org.hswebframework.web.service.authorization.RoleService;
 import org.hswebframework.web.service.authorization.RoleService;
@@ -79,7 +79,7 @@ public class SpringBootExample implements CommandLineRunner {
 
 
     @Bean
     @Bean
     public AccessLoggerListener accessLoggerListener() {
     public AccessLoggerListener accessLoggerListener() {
-        return loggerInfo -> System.out.println("有请求啦:" + JSON.toJSONString(loggerInfo));
+        return loggerInfo -> System.out.println("有请求啦:" + JSON.toJSONString(loggerInfo.getAction()));
     }
     }
 
 
     @Bean
     @Bean
@@ -150,11 +150,17 @@ public class SpringBootExample implements CommandLineRunner {
         updateAccessEntity.setType(DataAccessConfig.DefaultType.OWN_CREATED);
         updateAccessEntity.setType(DataAccessConfig.DefaultType.OWN_CREATED);
         updateAccessEntity.setAction(Permission.ACTION_UPDATE);
         updateAccessEntity.setAction(Permission.ACTION_UPDATE);
 
 
-        //只能修改自己创建的数据
-        DataAccessEntity queryFieldsEntity = new DataAccessEntity();
-        updateAccessEntity.setType(DataAccessConfig.DefaultType.DENY_FIELDS);
-        updateAccessEntity.setAction(Permission.ACTION_UPDATE);
-        updateAccessEntity.setConfig("");
+        //不能查询password
+        DataAccessEntity denyQueryFields = new DataAccessEntity();
+        denyQueryFields.setType(DataAccessConfig.DefaultType.ALLOW_FIELDS);
+        denyQueryFields.setAction(Permission.ACTION_QUERY);
+        denyQueryFields.setConfig(JSON.toJSONString(new SimpleFieldFilterDataAccessConfig("password")));
+
+        //不能修改password
+        DataAccessEntity denyUpdateFields = new DataAccessEntity();
+        denyUpdateFields.setType(DataAccessConfig.DefaultType.ALLOW_FIELDS);
+        denyUpdateFields.setAction(Permission.ACTION_UPDATE);
+        denyUpdateFields.setConfig(JSON.toJSONString(new SimpleFieldFilterDataAccessConfig("password")));
 
 
 
 
         PermissionEntity permission = entityFactory.newInstance(PermissionEntity.class);
         PermissionEntity permission = entityFactory.newInstance(PermissionEntity.class);
@@ -162,7 +168,7 @@ public class SpringBootExample implements CommandLineRunner {
         permission.setId("test");
         permission.setId("test");
         permission.setStatus((byte) 1);
         permission.setStatus((byte) 1);
         permission.setActions(ActionEntity.create(Permission.ACTION_QUERY, Permission.ACTION_UPDATE));
         permission.setActions(ActionEntity.create(Permission.ACTION_QUERY, Permission.ACTION_UPDATE));
-        permission.setDataAccess(Arrays.asList(accessEntity, updateAccessEntity, queryFieldsEntity));
+        permission.setDataAccess(Arrays.asList(accessEntity, updateAccessEntity, denyUpdateFields,denyUpdateFields));
         permissionService.insert(permission);
         permissionService.insert(permission);
 
 
         BindPermissionRoleEntity<PermissionRoleEntity> roleEntity = entityFactory.newInstance(BindPermissionRoleEntity.class);
         BindPermissionRoleEntity<PermissionRoleEntity> roleEntity = entityFactory.newInstance(BindPermissionRoleEntity.class);

+ 2 - 0
hsweb-examples/hsweb-examples-simple/src/main/java/org/hswebframework/web/example/simple/TestController.java

@@ -13,6 +13,7 @@ import org.hswebframework.web.controller.QueryController;
 import org.hswebframework.web.controller.message.ResponseMessage;
 import org.hswebframework.web.controller.message.ResponseMessage;
 import org.hswebframework.web.entity.authorization.SimpleUserEntity;
 import org.hswebframework.web.entity.authorization.SimpleUserEntity;
 import org.hswebframework.web.entity.authorization.UserEntity;
 import org.hswebframework.web.entity.authorization.UserEntity;
+import org.hswebframework.web.logging.AccessLogger;
 import org.hswebframework.web.model.authorization.UserModel;
 import org.hswebframework.web.model.authorization.UserModel;
 import org.hswebframework.web.service.QueryByEntityService;
 import org.hswebframework.web.service.QueryByEntityService;
 import org.hswebframework.web.service.QueryService;
 import org.hswebframework.web.service.QueryService;
@@ -28,6 +29,7 @@ import java.util.List;
 @RestController
 @RestController
 @RequestMapping("/test")
 @RequestMapping("/test")
 @Authorize(permission = "test")
 @Authorize(permission = "test")
+@AccessLogger("测试")
 public class TestController implements QueryController<UserEntity, String, QueryParamEntity> {
 public class TestController implements QueryController<UserEntity, String, QueryParamEntity> {
 
 
     @GetMapping("/test1")
     @GetMapping("/test1")