From 0e8110030b0eb4e8be3d1504554d56217e64d236 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Thu, 04 Jan 2018 16:25:57 +0800 Subject: [PATCH] 组织模块 --- src/main/java/com/moral/service/impl/AuthUserServiceImpl.java | 66 +++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java b/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java index 9f37169..cac5f0f 100644 --- a/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java +++ b/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java @@ -1,38 +1,58 @@ package com.moral.service.impl; -import com.moral.entity.auth.AuthRole; -import com.moral.entity.auth.AuthUser; -//import com.moral.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; +import com.moral.common.util.RedisUtil; +import com.moral.entity.Account; +import com.moral.entity.OperateUser; +import com.moral.mapper.AccountMapper; +import com.moral.service.AccountService; +import com.moral.service.OperateUserService; @Service public class AuthUserServiceImpl implements UserDetailsService { -// @Autowired -// private UserService userService; + @Resource + private AccountMapper accountMapper; - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { -// AuthUser user = userService.findByUsername(username); - AuthUser user = null; - if(user == null){ - throw new UsernameNotFoundException("������������"+ username + "������������"); - } - Collection<SimpleGrantedAuthority> collection = new HashSet<SimpleGrantedAuthority>(); - Iterator<AuthRole> iterator = user.getList().iterator(); - while (iterator.hasNext()){ - collection.add(new SimpleGrantedAuthority(iterator.next().getRole_name())); - } + @Resource + private AccountService accountService; - return new org.springframework.security.core.userdetails.User(username, user.getPassword(), collection); - } + @Resource + private OperateUserService operateUserService; + + @Resource + private RedisTemplate<String, String> redisTemplate; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + String type = RedisUtil.get(redisTemplate, "token_" + username), password; + Collection<SimpleGrantedAuthority> collection = new HashSet<SimpleGrantedAuthority>(); + if ("screen".equals(type)) { + Account account = accountService.getAccountByAccountName(username); + password = account.getPassword(); + List<Map<String, Object>> roleNames = accountMapper.getRoleNameByAccountId(account.getId()); + for (Map<String, Object> roleName : roleNames) { + collection.add(new SimpleGrantedAuthority((String) roleName.get("role_name"))); + } + } else { + OperateUser operateUser = operateUserService.getOperateUserByMobile(username); + password = operateUser.getPassword(); + collection.add((new SimpleGrantedAuthority("ROLE_MOBILE"))); + } + return new User(username, password, collection); + } } -- Gitblit v1.8.0