publish 2.0.0.rc38
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.tiesheng.web.config.role;
|
||||
|
||||
import cn.hutool.core.annotation.AnnotationUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.tiesheng.annotation.role.RoleAuthority;
|
||||
import com.tiesheng.util.service.role.TsAuthorityHandler;
|
||||
import org.springframework.aop.support.AopUtils;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class RoleAuthorityCreator implements ApplicationListener<ContextRefreshedEvent> {
|
||||
|
||||
@Resource
|
||||
TsAuthorityHandler tsAuthorityHandler;
|
||||
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
ApplicationContext applicationContext = event.getApplicationContext();
|
||||
Map<String, Object> beansOfType = applicationContext.getBeansWithAnnotation(RoleAuthority.class);
|
||||
|
||||
String version = DateUtil.format(new Date(), "yyyyMMddHHmmss");
|
||||
|
||||
for (Map.Entry<String, Object> entry : beansOfType.entrySet()) {
|
||||
|
||||
Class<?> targetClass = AopUtils.getTargetClass(entry.getValue());
|
||||
RoleAuthority menu = targetClass.getAnnotation(RoleAuthority.class);
|
||||
|
||||
List<RoleAuthority> points = new ArrayList<>();
|
||||
Method[] methods = targetClass.getDeclaredMethods();
|
||||
for (Method method : methods) {
|
||||
RoleAuthority methodAuthority = AnnotationUtil.getAnnotation(method, RoleAuthority.class);
|
||||
if (methodAuthority != null) {
|
||||
points.add(methodAuthority);
|
||||
}
|
||||
}
|
||||
|
||||
tsAuthorityHandler.addRoleAuthority(version, menu, points);
|
||||
}
|
||||
|
||||
tsAuthorityHandler.onCreateAfter(version);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user