|
|
@@ -56,39 +56,49 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
@Autowired
|
|
|
private PermissionService permissionService;
|
|
|
|
|
|
- private Logger LOG= LoggerFactory.getLogger(getClass());
|
|
|
+ private Logger LOG = LoggerFactory.getLogger(getClass());
|
|
|
+
|
|
|
@Override
|
|
|
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
|
|
|
|
|
|
String username = (String) principals.getPrimaryPrincipal();
|
|
|
- LOG.info("username + "+System.currentTimeMillis());
|
|
|
Long userId = userService.findByUsername(username).getId();
|
|
|
- LOG.info("userId + "+System.currentTimeMillis());
|
|
|
List<Role> roles = roleService.getRolesOfUser(username);
|
|
|
- LOG.info("roles + "+System.currentTimeMillis());
|
|
|
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
|
|
|
info.setRoles(roles.stream().map(Role::getName).collect(Collectors.toSet()));
|
|
|
- LOG.info("setRoles + "+System.currentTimeMillis());
|
|
|
|
|
|
Set<String> permissions = new HashSet<>();
|
|
|
permissions.addAll(getRolePermissions(roles));
|
|
|
- LOG.info("rolePermissions + "+System.currentTimeMillis());
|
|
|
- permissions.addAll(getTaskPermissions(userId));
|
|
|
- LOG.info("taskPermissions + "+System.currentTimeMillis());
|
|
|
- permissions.addAll(getGroupPermissions(userId));
|
|
|
- LOG.info("GroupPermissions + "+System.currentTimeMillis());
|
|
|
- permissions.addAll(getCasePermissions(userId));
|
|
|
- LOG.info("casePermissions + "+System.currentTimeMillis());
|
|
|
- permissions.addAll(getReportPermissions(userId));
|
|
|
- LOG.info("reportPermissions + "+System.currentTimeMillis());
|
|
|
- permissions.addAll(getAppPermissions(userId));
|
|
|
- LOG.info("appPermissions + "+System.currentTimeMillis());
|
|
|
-
|
|
|
- permissions.addAll(getPaperPermissions(userId));
|
|
|
- LOG.info("paperPermissions + "+System.currentTimeMillis());
|
|
|
+
|
|
|
+ Set<String> taskPermission = getTaskPermissions(userId);
|
|
|
+ Set<String> groupPermission = getGroupPermissions(userId);
|
|
|
+ Set<String> casePermission = getCasePermissions(userId);
|
|
|
+ Set<String> reportPermission = getReportPermissions(userId);
|
|
|
+ Set<String> appPermission = getAppPermissions(userId);
|
|
|
+ Set<String> paperPermission = getPaperPermissions(userId);
|
|
|
+
|
|
|
+ if (taskPermission != null) {
|
|
|
+ permissions.addAll(getTaskPermissions(userId));
|
|
|
+ }
|
|
|
+ if (groupPermission != null) {
|
|
|
+ permissions.addAll(getGroupPermissions(userId));
|
|
|
+ }
|
|
|
+ if (casePermission != null) {
|
|
|
+ permissions.addAll(getCasePermissions(userId));
|
|
|
+ }
|
|
|
+ if (reportPermission != null) {
|
|
|
+ permissions.addAll(getReportPermissions(userId));
|
|
|
+ }
|
|
|
+ if (appPermission != null) {
|
|
|
+ permissions.addAll(getAppPermissions(userId));
|
|
|
+ }
|
|
|
+ if (paperPermission != null) {
|
|
|
+ permissions.addAll(getPaperPermissions(userId));
|
|
|
+ }
|
|
|
|
|
|
info.setStringPermissions(permissions);
|
|
|
|
|
|
+ LOG.info("permissionStr+" + info.getStringPermissions());
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
@@ -106,7 +116,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
private Set<String> getTaskPermissions(Long userId) {
|
|
|
|
|
|
List<TaskPermission> taskPermissions = taskPermissionService.getTaskPermissionsByuserId(userId);
|
|
|
- if (taskPermissions.size() == 0){
|
|
|
+ if (taskPermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return taskPermissions.stream().map(TaskPermission::toString).collect(Collectors.toSet());
|
|
|
@@ -116,17 +126,16 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
private Set<String> getAppPermissions(Long userId) {
|
|
|
|
|
|
List<AppPermission> appPermissions = appPermissionService.getAppPermissionsByUserId(userId);
|
|
|
- if (appPermissions.size() == 0){
|
|
|
+ if (appPermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return appPermissions.stream().map(AppPermission::toString).collect(Collectors.toSet());
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private Set<String> getReportPermissions(Long userId) {
|
|
|
|
|
|
List<ReportPermission> reportPermissions = reportPermissionService.getReportPermissionsByuserId(userId);
|
|
|
- if (reportPermissions.size() == 0){
|
|
|
+ if (reportPermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return reportPermissions.stream().map(ReportPermission::toString).collect(Collectors.toSet());
|
|
|
@@ -136,7 +145,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
private Set<String> getPaperPermissions(Long userId) {
|
|
|
|
|
|
List<PaperPermission> paperPermissions = paperPermissionService.getPaperPermissionsByUserId(userId);
|
|
|
- if (paperPermissions.size() == 0){
|
|
|
+ if (paperPermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return paperPermissions.stream().map(PaperPermission::toString).collect(Collectors.toSet());
|
|
|
@@ -146,7 +155,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
private Set<String> getGroupPermissions(Long userId) {
|
|
|
|
|
|
List<GroupPermission> groupPermissions = groupPermissionService.getGroupPermissionsByUserId(userId);
|
|
|
- if (groupPermissions.size() == 0){
|
|
|
+ if (groupPermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return groupPermissions.stream().map(GroupPermission::toString).collect(Collectors.toSet());
|
|
|
@@ -155,7 +164,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
private Set<String> getCasePermissions(Long userId) {
|
|
|
|
|
|
List<CasePermission> casePermissions = casePermissionService.getCasePermissionsByuserId(userId);
|
|
|
- if (casePermissions.size() == 0){
|
|
|
+ if (casePermissions.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
return casePermissions.stream().map(CasePermission::toString).collect(Collectors.toSet());
|
|
|
@@ -166,7 +175,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
|
|
|
|
|
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
|
|
|
String username = upToken.getUsername();
|
|
|
- User user = userService.findByEmail(username);
|
|
|
+ User user = userService.findByEmail(username);
|
|
|
// Null username is invalid
|
|
|
if (user == null) {
|
|
|
throw new AccountException("Null usernames are not allowed by this realm.");
|