黎星凯
2024-05-17 3520e86e2b00b9c1ee3f4fffd4ab49fe3d6c259e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.iplatform.security.event;
 
import com.iplatform.base.event.RoleSecurityChangeEvent;
import com.walker.web.security.ResourceLoadProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationListener;
 
/**
 * 角色对应权限更新监听器,在角色权限修改后,会触发该事件来响应。
 * <p>如果不通知重新加载,则角色分过权限后,用户仍然看不到(需要重新启动)</p>
 * @author shikeying
 * @date 2023-05-07 移植老代码
 */
public class RoleSecurityUpdateListener implements ApplicationListener<RoleSecurityChangeEvent> {
 
    private Logger logger = LoggerFactory.getLogger(getClass());
 
//    private MySecurityMetadataSource securityMetaSource;
//
//    public void setSecurityMetaSource(MySecurityMetadataSource securityMetaSource) {
//        assert (securityMetaSource != null);
//        this.securityMetaSource = securityMetaSource;
//    }
 
    private ResourceLoadProvider resourceLoaderProvider;
 
    public void setResourceLoaderProvider(ResourceLoadProvider securityMetaSource) {
        this.resourceLoaderProvider = securityMetaSource;
    }
 
    @Override
    public void onApplicationEvent(RoleSecurityChangeEvent event) {
        resourceLoaderProvider.reloadResource();
        logger.info("*************************************************");
        logger.info("*  系统重新加载了角色权限数据");
        logger.info("*************************************************");
    }
 
}