merge
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
package com.xwbing.shiro;
|
||||
|
||||
import com.xwbing.constant.CommonConstant;
|
||||
import com.xwbing.constant.CommonEnum;
|
||||
import com.xwbing.domain.entity.sys.SysAuthority;
|
||||
import com.xwbing.domain.entity.sys.SysRole;
|
||||
import com.xwbing.domain.entity.sys.SysUser;
|
||||
import com.xwbing.service.sys.SysAuthorityService;
|
||||
import com.xwbing.service.sys.SysRoleService;
|
||||
import com.xwbing.service.sys.SysUserService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.shiro.authc.AuthenticationException;
|
||||
import org.apache.shiro.authc.AuthenticationInfo;
|
||||
import org.apache.shiro.authc.AuthenticationToken;
|
||||
@@ -34,6 +37,8 @@ public class MyShiroRealm extends AuthorizingRealm {
|
||||
private SysUserService sysUserService;
|
||||
@Resource
|
||||
private SysRoleService sysRoleService;
|
||||
@Resource
|
||||
private SysAuthorityService sysAuthorityService;
|
||||
|
||||
/**
|
||||
* 授权用户权限(授权)
|
||||
@@ -53,14 +58,21 @@ public class MyShiroRealm extends AuthorizingRealm {
|
||||
// 权限信息对象info,用来存放查出的用户的所有的角色(role)及权限(permission)
|
||||
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
|
||||
// 用户的角色集合
|
||||
List<SysRole> sysRoles = sysRoleService.listByUserIdEnable(user.getId(), "Y");
|
||||
Set<String> roles = new HashSet<>();
|
||||
sysRoles.forEach(sysRole -> roles.add(sysRole.getName()));
|
||||
info.setRoles(roles);
|
||||
// List<SysRole> sysRoles = sysRoleService.listByUserIdEnable(user.getId(), "Y");
|
||||
// Set<String> roles = new HashSet<>();
|
||||
// sysRoles.forEach(sysRole -> roles.add(sysRole.getName()));
|
||||
// info.setRoles(roles);
|
||||
//用户的权限集合
|
||||
Set<String> permissions = new HashSet<>();
|
||||
List<SysAuthority> sysAuthorities = sysUserService.listAuthorityByIdAndEnable(user.getId(), "Y");
|
||||
sysAuthorities.forEach(sysAuthority -> permissions.add(sysAuthority.getUrl()));
|
||||
List<SysAuthority> sysAuthorities;
|
||||
if (CommonConstant.IS_ENABLE.equalsIgnoreCase(user.getAdmin())) {
|
||||
sysAuthorities = sysAuthorityService.listByEnable(CommonEnum.YesOrNoEnum.YES.getCode());
|
||||
} else {
|
||||
sysAuthorities = sysUserService.listAuthorityByIdAndEnable(user.getId(), "Y");
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(sysAuthorities)) {
|
||||
sysAuthorities.forEach(sysAuthority -> permissions.add(sysAuthority.getUrl()));
|
||||
}
|
||||
info.setStringPermissions(permissions);
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -198,19 +198,24 @@ public class ShiroConfig {
|
||||
// return simpleCookie;
|
||||
// }
|
||||
@Bean
|
||||
public FilterRegistrationBean urlPermissionsFilterRegistrationBean() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean(urlPermissionsFilter());
|
||||
public FilterRegistrationBean urlPermissionsFilterRegistrationBean(UrlPermissionsFilter urlPermissionsFilter) {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean(urlPermissionsFilter);
|
||||
//设置不自动在在配置时执行,默认是true
|
||||
registration.setEnabled(false);
|
||||
return registration;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "urlPermissionsFilter")
|
||||
public UrlPermissionsFilter urlPermissionsFilter() {
|
||||
return new UrlPermissionsFilter();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* AOP式方法级权限检查
|
||||
*
|
||||
* @param securityManager
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
|
||||
AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
|
||||
|
||||
@@ -27,7 +27,7 @@ public class UrlPermissionsFilter extends PermissionsAuthorizationFilter {
|
||||
private SysAuthorityService sysAuthorityService;
|
||||
|
||||
/**
|
||||
* @param mappedValue 指的是在声明url时指定的权限字符串,如 我们要动态产生这个权限字符串,
|
||||
* @param mappedValue 指的是在声明url时指定的权限字符串,我们要动态产生这个权限字符串,
|
||||
*/
|
||||
@Override
|
||||
public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#server
|
||||
server:
|
||||
port: 8088
|
||||
port: 8080
|
||||
session:
|
||||
timeout: 3600 #单位秒
|
||||
context-path: /
|
||||
|
||||
Reference in New Issue
Block a user