Search in sources :

Example 1 with User

use of com.moon.admin.domain.User in project moon by gentoo111.

the class SysLogServiceImpl method save.

@Async
@Override
public void save(Long userId, String module, Boolean flag, String remark) {
    SysLogs sysLogs = new SysLogs();
    sysLogs.setFlag(flag);
    sysLogs.setModule(module);
    sysLogs.setRemark(remark);
    User user = new User();
    user.setId(userId);
    sysLogs.setUser(user);
    sysLogsDao.save(sysLogs);
}
Also used : User(com.moon.admin.domain.User) SysLogs(com.moon.admin.domain.SysLogs) Async(org.springframework.scheduling.annotation.Async)

Example 2 with User

use of com.moon.admin.domain.User in project moon by gentoo111.

the class LogoutFilter method preHandle.

@Override
protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
    String loginToken = RestfulFilter.getToken(request);
    User user = UserUtil.getCurrentUser();
    if (StringUtils.isBlank(loginToken)) {
        // 非Restful方式
        boolean flag = super.preHandle(request, response);
        log.debug("{}退出成功", user.getUsername());
        SpringUtil.getBean(SysLogService.class).save(user.getId(), "退出", true, null);
        return flag;
    } else {
        TokenManager tokenManager = SpringUtil.getBean(TokenManager.class);
        boolean flag = tokenManager.deleteToken(loginToken);
        if (flag) {
            RestfulFilter.writeResponse(WebUtils.toHttp(response), HttpStatus.OK.value(), SUCCESS_INFO);
            log.debug("{}退出成功", user.getUsername());
        } else {
            RestfulFilter.writeResponse(WebUtils.toHttp(response), HttpStatus.BAD_REQUEST.value(), ERR_INFO);
        }
        SpringUtil.getBean(SysLogService.class).save(user.getId(), "token方式退出", flag, null);
        return false;
    }
}
Also used : User(com.moon.admin.domain.User) SysLogService(com.moon.admin.service.SysLogService) TokenManager(com.moon.admin.service.TokenManager)

Example 3 with User

use of com.moon.admin.domain.User in project moon by gentoo111.

the class ShiroRealm method doGetAuthenticationInfo.

@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
    UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
    String username = usernamePasswordToken.getUsername();
    UserService userService = SpringUtil.getBean(UserService.class);
    User user = userService.getUser(username);
    if (user == null) {
        throw new UnknownAccountException("用户名不存在");
    }
    if (!user.getPassword().equals(userService.passwordEncoder(new String(usernamePasswordToken.getPassword()), user.getSalt()))) {
        throw new IncorrectCredentialsException("密码错误");
    }
    if (user.getStatus() != Status.VALID) {
        throw new IncorrectCredentialsException("无效状态,请联系管理员");
    }
    SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(user, user.getPassword(), ByteSource.Util.bytes(user.getSalt()), getName());
    UserUtil.setUserSession(user);
    return authenticationInfo;
}
Also used : User(com.moon.admin.domain.User) UserService(com.moon.admin.service.UserService)

Example 4 with User

use of com.moon.admin.domain.User in project moon by gentoo111.

the class ShiroRealm method doGetAuthorizationInfo.

@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
    log.debug("权限配置");
    SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
    User user = UserUtil.getCurrentUser();
    List<Role> roles = SpringUtil.getBean(RoleDao.class).listByUserId(user.getId());
    Set<String> roleNames = roles.stream().map(Role::getName).collect(Collectors.toSet());
    authorizationInfo.setRoles(roleNames);
    List<Permission> permissionList = SpringUtil.getBean(PermissionDao.class).listByUserId(user.getId());
    UserUtil.setPermissionSession(permissionList);
    Set<String> permissions = permissionList.stream().filter(p -> !StringUtils.isEmpty(p.getPermission())).map(Permission::getPermission).collect(Collectors.toSet());
    authorizationInfo.setStringPermissions(permissions);
    return authorizationInfo;
}
Also used : Role(com.moon.admin.domain.Role) SimpleAuthorizationInfo(org.apache.shiro.authz.SimpleAuthorizationInfo) User(com.moon.admin.domain.User) RoleDao(com.moon.admin.dao.RoleDao) PermissionDao(com.moon.admin.dao.PermissionDao) Permission(com.moon.admin.domain.Permission)

Example 5 with User

use of com.moon.admin.domain.User in project moon by gentoo111.

the class ShiroRealm method getAuthorizationCacheKey.

/**
 * 重写缓存key,否则集群下session共享时,会重复执行doGetAuthorizationInfo权限配置
 */
@Override
protected Object getAuthorizationCacheKey(PrincipalCollection principals) {
    SimplePrincipalCollection principalCollection = (SimplePrincipalCollection) principals;
    Object object = principalCollection.getPrimaryPrincipal();
    if (object instanceof User) {
        User user = (User) object;
        return "authorization:cache:key:users:" + user.getId();
    }
    return super.getAuthorizationCacheKey(principals);
}
Also used : User(com.moon.admin.domain.User) SimplePrincipalCollection(org.apache.shiro.subject.SimplePrincipalCollection)

Aggregations

User (com.moon.admin.domain.User)7 PermissionDao (com.moon.admin.dao.PermissionDao)2 Permission (com.moon.admin.domain.Permission)2 JSONArray (com.alibaba.fastjson.JSONArray)1 JSONObject (com.alibaba.fastjson.JSONObject)1 Lists (com.google.common.collect.Lists)1 LogAnnotation (com.moon.admin.common.utils.LogAnnotation)1 UserUtil (com.moon.admin.common.utils.UserUtil)1 RoleDao (com.moon.admin.dao.RoleDao)1 Role (com.moon.admin.domain.Role)1 SysLogs (com.moon.admin.domain.SysLogs)1 PermissionService (com.moon.admin.service.PermissionService)1 SysLogService (com.moon.admin.service.SysLogService)1 TokenManager (com.moon.admin.service.TokenManager)1 UserService (com.moon.admin.service.UserService)1 Api (io.swagger.annotations.Api)1 ApiOperation (io.swagger.annotations.ApiOperation)1 Collections (java.util.Collections)1 List (java.util.List)1 Set (java.util.Set)1