package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.UserMapper; import com.whyc.pojo.db_user.User; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.springframework.cache.CacheManager; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * 处理 shiro认证,授权,和数据库交互 */ @Service //Unified Naming //@CacheConfig(cacheNames ={"userBridge"}) public class UserBridgeService { @Resource private UserMapper userMapper; @Resource private CacheManager cacheManager; public User findPasswordByUserName(String name) { User user = null; QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.eq("name",name); user = userMapper.selectOne(queryWrapper); return user ==null?new User(0,"用户不存在"): user; } public User getUserByPhoneNumber(String phoneNumber){ QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.eq("phone_number",phoneNumber); List list = userMapper.selectList(queryWrapper); return list.size()==0?new User(0,"用户不存在"):list.get(0); } /** * TODO 采用caffeineCache重写 * @param user * @return */ //@Cacheable(key = "#root.methodName+#p0.id") public AuthorizationInfo getAuthorizationInfo(User user) { System.out.println("=========执行了UserBridgeService.getAuthorization方法=========="); SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); //添加Roles和Permissions //List roles = findRolesByUserId(user.getUId()); //List perms = findPermissionsByUserId(user.getUId()); //authorizationInfo.addRoles(roles); //authorizationInfo.addStringPermissions(perms); return authorizationInfo; } /* private List findPermissionsByUserId(Long userId) { *//* List perms = rolePermissionMapper.findPermissionsByUserId(userId); return perms;*//* return null; } private List findRolesByUserId(Long userId) { //List roles =userRoleMapper.findRolesByUserId(userId); //roles.add("dev"); return null; }*/ }