怎么进行oauth授权?接下来我们就一起去研究一下吧!

怎么进行oauth授权?环境配置:Jdk1.8Tomcat8.5mysqlEclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持),今天小编就来聊一聊关于怎么进行oauth授权?接下来我们就一起去研究一下吧!
怎么进行oauth授权
一、项目运行环境配置:
Jdk1.8Tomcat8.5mysqlEclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSPSpringSpringMVCMyBatishtmlcssJavaScriptJQueryAjaxlayuimaven等等
用户管理控制层:/** * @author yy */ @Controller@RequestMapping("/user")public class UserController extends BaseController{private String prefix = "system/user/";@AutowiredIUserService iUserService;@AutowiredIRoleService iRoleService;@AutowiredIDeptService iDeptService;@AutowiredIPositionService iPositionService;@Autowiredprivate SysPasswordService passwordService;/**** @描述 跳转到用户页面** @date 2018/9/16 10:54*/@RequestMapping("/tolist")@RequiresPermissions("user:list")public String toUserList(){return prefix"user";}/*** @描述 用户数据* @date 2018/9/15 12:30*/@RequestMapping("/tableList")@ResponseBodypublic TableDataInfo list(User user){startPage();List<User> users = iUserService.selectByUser(user);return getDataTable(users);}/*** 编辑用户 system/user/edit/20180914-1*/@RequiresPermissions("user:update")@RequestMapping("/edit/{userId}")public String edit(@PathVariable("userId") String userId, Model model){// 个人信息User user = iUserService.selectByPrimaryKey(userId);Map<String, Object> role_post_dept = getRole_Post_Dept();model.addAttribute("depts", role_post_dept.get("dept"));model.addAttribute("roles", role_post_dept.get("role"));model.addAttribute("positions", role_post_dept.get("position"));model.addAttribute("user", user);return prefix"edit";}/**** @描述 保存用户** @date 2018/9/15 18:53*/@PostMapping("/editSave")@RequiresPermissions("user:update")@Operlog(modal = "用户管理", descr = "修改用户信息")@ResponseBodypublic AjaxResult save(User user){if (StringUtils.isNotNull(user.getUid()) && User.isBoss(user.getUid())){return error("不允许修改管理员用户");}if(user.getPwd()!=null){user.setSalt(ShiroUtils.randomSalt());SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024);user.setPwd(md5.toHex());}return result(iUserService.updateByPrimaryKeySelective(user));}/*** @描述 添加用户页面* @date 2018/9/15 18:46*/@RequestMapping("/toAdd")@RequiresPermissions("user:add")public String toaddUser(Model model){Map<String, Object> role_post_dept = getRole_Post_Dept();model.addAttribute("depts", role_post_dept.get("dept"));model.addAttribute("roles", role_post_dept.get("role"));model.addAttribute("positions", role_post_dept.get("position"));return prefix"add";}/**** @描述 添加用户** @date 2018/9/15 20:40*/@RequestMapping("/addSave")@RequiresPermissions("user:add")@Operlog(modal = "用户管理", descr = "添加用户")@ResponseBodypublic AjaxResult addUser(User user){user.setSalt(ShiroUtils.randomSalt());SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024);user.setPwd(md5.toHex());user.setAvatar(CsEnum.avatar.USER_AVATAR.getValue());user.setCreateTime(new Date());return result(iUserService.insertSelective(user));}/**** @描述 批量删除** @date 2018/9/16 9:31*/@RequestMapping("/del")@RequiresPermissions("user:del")@Operlog(modal = "用户模块", descr = "删除用户")@ResponseBodypublic AjaxResult delByUserIds(String[] ids){try{int i = iUserService.deleteByPrimaryKeys(ids);}catch (Exception e){return error(e.getMessage());}return success();}/**** @描述 编辑密码修改页面** @date 2018/9/16 10:25*/@RequestMapping("/resetPwd/{userId}")@RequiresPermissions("user:update")public String editPwd(@PathVariable("userId") String id, Model model){model.addAttribute("uid", id);return prefix"resetPwd";}/**** @描述 密码修改** @date 2018/9/16 10:42*/@RequestMapping("/resetPwd")@RequiresPermissions("user:update")@Operlog(modal = "用户模块", descr = "修改密码")@ResponseBodypublic AjaxResult resetPwd(User user){return result(iUserService.resrtPwd(user));}/*** 校验手机号码*/@PostMapping("/checkPhoneUnique")@ResponseBodypublic String checkPhoneUnique(User user){String uniqueFlag = "0";if (user != null){uniqueFlag = iUserService.checkPhoneUnique(user);}return uniqueFlag;}/*** 校验email邮箱*/@PostMapping("/checkEmailUnique")@ResponseBodypublic String checkEmailUnique(User user){String uniqueFlag = "0";if (user != null){uniqueFlag = iUserService.checkEmailUnique(user);}return uniqueFlag;}/**** @描述: 校验登录名唯一性** @params:* @return:* @date: 2018/10/2 17:06*/@PostMapping("/checkLoginNameUnique")@ResponseBodypublic String checkLoginNameUnique(User user){String uniqueFlag = "0";if (user != null){uniqueFlag = iUserService.checkLoginNameUnique(user);}return uniqueFlag;}public Map<String, Object> getRole_Post_Dept(){Map<String, Object> map = new HashMap<>();//角色List<Role> roles = iRoleService.selectRoleList(new Role());//部门信息List<Dept> depts = iDeptService.selectDeptList(new Dept());//岗位List<Position> positions = iPositionService.selectPositionList(new Position());map.put("role", roles);map.put("dept", depts);map.put("position", positions);return map;}/*** 用户个人信息查看页面*/@RequestMapping("/myMsg")public String ToMyMsg(Model model, httpervletRequest request){User user = iUserService.selectByPrimaryKey(getUserId());model.addAttribute("user", user);model.addAttribute("loginIp", HttpHeaderUtil.getIpAddr(request));return prefix"profile/msg";}/*** 密码修改页面*/@RequestMapping("/resetMyPwd")public String toResetPwd(Model model){User user = iUserService.selectByPrimaryKey(getUserId());model.addAttribute("user", user);return prefix"profile/resetPwd";}/*** 密码修改保存*/@RequestMapping("/updateMyPwdSave")@ResponseBody@RequiresPermissions("user:update")@Operlog(modal = "个人信息", descr = "修改密码")public AjaxResult updateMyPwdSave(String password){User user = new User();user.setSalt(ShiroUtils.randomSalt());SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024);user.setPwd(md5.toHex());user.setUid(getUserId());int i = iUserService.updateByPrimaryKeySelective(user);if (i > 0){//更新shiro中的信息ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId()));return success();}return error();}/*** 编辑用户头像修改*/@RequestMapping("/updateAvatar")public String toupdateAvatar(Model model){model.addAttribute("user", getUser());return prefix"profile/avatar";}/*** 修改保存用户头像*/@RequestMapping("/updateAvatarSave")@RequiresPermissions("user:update")@Operlog(modal = "个人信息", descr = "修改头像")@ResponseBodypublic AjaxResult toupdateAvatar(MultipartFile file){try{String imgPath = UploadFile.uploadUserImg(file);if (StringUtils.isEmpty(imgPath)){return error("图片上传失败,稍后再试!");}User user = new User();user.setUid(getUserId());user.setAvatar(imgPath);int i = iUserService.updateByPrimaryKeySelective(user);if (i > 0){ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId()));}return result(i);}catch (IOException e){return error();}catch (FileSizeException e){//文件过大return error(e.getMsg());}catch (FileNameLengthException e){//文件名字超长return error(e.getMsg());}}/*** 校验密码和原来密码是否相同*/@RequestMapping("/checkPassword")@ResponseBodypublic boolean checkPassword(String password){//加密后与数据库密码比较User user = getUser();SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024);String oldPassword = md5.toHex();String pwd = getPwd();if (pwd.equals(oldPassword)){return true;}return false;}}
/** * @author yy */@Controller@RequestMapping("/dept")public class DeptController extends BaseController{private String prefix = "system/dept/";@AutowiredIDeptService iDeptService;@AutowiredIUserService iUserService;/**** @描述 页面跳转到部门** @date 2018/9/16 10:59*/@RequestMapping("/tolist")@RequiresPermissions("dept:list")public String tolist(){return prefix"dept";}/**** @描述 ajax请求的所有部门** @date 2018/9/16 10:48*/@RequestMapping("/ajaxlist")@ResponseBodypublic List<Dept> list(Dept dept){List<Dept> depts = iDeptService.selectDeptList(dept);return depts;}/**** @描述 部门列表页** @date 2018/9/16 10:52*/@RequestMapping("/tableList")@ResponseBodypublic TableDataInfo listPag(Dept dept){//开启分页startPage();List<Dept> depts = iDeptService.selectDeptList(dept);return getDataTable(depts);}/**** @描述 新增页面** @date 2018/9/16 11:37*/@RequiresPermissions("dept:add")@RequestMapping("/toAdd")public String toAdd(Model model){List<User> users = iUserService.selectByUser(new User());model.addAttribute("users", users);return prefix"add";}/**** @描述: 查询所有部门下的所有用户 用户归类 树状数据** @date: 2018/9/27 11:25*/@RequestMapping("/getDeptAndUserTreeData")@ResponseBodypublic List<Object> DeptAndUserTreeData(){List<Dept> depts = iDeptService.selectDeptAndUser();List<User> users=new ArrayList<>();LinkedList<Object> deptList = new LinkedList<>();for (Dept dept : depts){Map<String, Object> deptMap = new HashMap();deptMap.put("name", dept.getDeptName());deptMap.put("id", null);users = dept.getUsers();LinkedList<Object> userlist = new LinkedList<>();for (User user : users){Map<String, Object> userMap = new HashMap();userMap.put("name",user.getName());userMap.put("id",user.getUid());userMap.put("icon","/img/timg.jpg");userlist.add(userMap);}deptMap.put("children",userlist);deptList.add(deptMap);}return deptList;}/**** @描述 批量删除** @date 2018/9/16 11:53*/@RequestMapping("/del")@RequiresPermissions("dept:del")@ResponseBody@Operlog(modal = "部门管理",descr = "删除部门")public AjaxResult del(String[] ids){try{iDeptService.deleteByPrimaryKeys(ids);}catch (Exception e){return error(e.getMessage());}return success();}/**** @描述 执行保存操作** @date 2018/9/16 11:54*/@RequestMapping("/addSave")@Operlog(modal = "部门管理",descr = "添加部门")@RequiresPermissions("dept:add")@ResponseBodypublic AjaxResult addDept(Dept dept){dept.setCreateTime(new Date());returnresult(iDeptService.insertSelective(dept));}/**** @描述 编辑修改页面** @date 2018/9/16 14:06*/@RequestMapping("/edit/{id}")@RequiresPermissions("dept:update")public String edit(@PathVariable("id") String id, Model model){Dept dept = iDeptService.selectByPrimaryKey(id);List<User> users = iUserService.selectByUser(new User());model.addAttribute("users", users);model.addAttribute("Dept", dept);return prefix"edit";}/**** @描述 修改保存** @date 2018/9/16 16:12*/@RequestMapping("/editSave")@RequiresPermissions("dept:update")@Operlog(modal = "部门管理",descr = "修改信息")@ResponseBodypublic AjaxResult save(Dept dept){int i = 0;try{i = iDeptService.updateByPrimaryKeySelective(dept);}catch (Exception e){return error(e.getMessage());}return result(i);}/*** 校验部门名称*/@PostMapping("/checkDeptNameUnique")@ResponseBodypublic String checkDeptNameUnique(Dept dept){String uniqueFlag = "0";if (dept != null){uniqueFlag = iDeptService.checkDeptNameUnique(dept);}return uniqueFlag;}}
/** * @author yy */@Controller@RequestMapping("/role")public class RoleController extends BaseController{private String prefix = "system/role/";@AutowiredIUserService iUserService;@AutowiredIRoleService iRoleService;@AutowiredIPermissionService iPermissionService;/**** @描述 页面跳转** @date 2018/9/16 10:59*/@RequestMapping("/tolist")@RequiresPermissions("role:list")public String tolist(){return prefix"role";}/**** @描述 ajax请求所有** @date 2018/9/16 10:48*/@RequestMapping("/ajaxlist")@ResponseBodypublic List<Role> list(Role role){List<Role> roles = iRoleService.selectRoleList(role);return roles;}/**** @描述 列表** @date 2018/9/16 10:52*/@RequestMapping("/tableList")@ResponseBodypublic TableDataInfo listPag(Role role){//开启分页startPage();List<Role> roles = iRoleService.selectRoleList(role);return getDataTable(roles);}/**** @描述 新增页面** @date 2018/9/16 11:37*/@RequestMapping("/toAdd")@RequiresPermissions("role:add")public String toAdd(Model model){return prefix"add";}/**** @描述 批量删除** @date 2018/9/16 11:53*/@RequestMapping("/del")@RequiresPermissions("role:del")@Operlog(modal = "角色管理",descr = "删除角色")@ResponseBodypublic AjaxResult del(Integer[] ids){try{iRoleService.deleteByPrimaryKeys(ids);}catch (Exception e){return error(e.getMessage());}return success();}/**** @描述 添加保存** @date 2018/9/16 11:54*/@RequestMapping("/addSave")@RequiresPermissions("role:update")@Operlog(modal = "角色管理",descr = "添加角色")@ResponseBodypublic AjaxResult addRole(Role role, Integer[] ids){role.setCreateTime(new Date());int insert = 0;try{if (StringUtils.isEmpty(ids)){ids = new Integer[0];}insert = iRoleService.insert(role, ids);}catch (Exception e){return error(e.getMessage());}//清空缓存ShiroUtils.clearCachedAuthorizationInfo();returnresult(insert);}/**** @描述: 根据ID 获取u他的所有权限 做回显** @params: roleId 角色Id* @return:* @date: 2018/9/27 14:04*/@RequestMapping("/selectById/{roleId}")@ResponseBodypublic Role selectById(@PathVariable("roleId") Integer roleId){Role role = iRoleService.selectByPrimaryKey(roleId);return role;}/**** @描述 编辑修改页面** @date 2018/9/16 14:06*/@RequestMapping("/edit/{id}")@RequiresPermissions("role:update")public String edit(@PathVariable("id") Integer id, Model model){Role role = iRoleService.selectByPrimaryKey(id);model.addAttribute("Role", role);return prefix"edit";}/**** @描述 编辑修改权限页面** @date 2018/9/16 14:06*/@RequestMapping("/editPower/{id}")@RequiresPermissions("role:update")public String editPower(@PathVariable("id") Integer id, Model model){Role role = iRoleService.selectByPrimaryKey(id);model.addAttribute("Role", role);return prefix"editPower";}/**** @描述 修改角色信息保存** @date 2018/9/16 16:12*/@RequestMapping("/editSave")@RequiresPermissions("role:update")@Operlog(modal = "角色管理",descr = "修改角色信息")@ResponseBodypublic AjaxResult save(Role role){int i = 0;try{i = iRoleService.updateByPrimaryKeySelective(role);}catch (Exception e){return error(e.getMessage());}return result(i);}/**** @描述 修改角色权限信息保存** @date 2018/9/16 16:12*/@RequestMapping("/editPowerSave")@RequiresPermissions("role:update")@Operlog(modal = "角色管理",descr = "修改角色权限")@ResponseBodypublic AjaxResult editPowerSave(Role role, Integer[] ids){int i = 0;try{if (StringUtils.isEmpty(ids)){ids = new Integer[0];}i = iRoleService.updateByPrimaryKeyPowerSelective(role, ids);}catch (Exception e){return error(e.getMessage());}//清空缓存ShiroUtils.clearCachedAuthorizationInfo();//如果用户正在修改的角色id 是当前用户的角色id 则刷新 subject的User信息if (role.getRoleId().equals(getRoleId())){ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId()));}return result(i);}/*** 校验名称唯一*/@PostMapping("/checkRoleNameUnique")@ResponseBodypublic String checkDeptNameUnique(Role role){String uniqueFlag = "0";if (role != null){uniqueFlag = iRoleService.checkRoleNameUnique(role);}return uniqueFlag;}}
由于限制,这里不能直接放链接,需要项目源码与开发文档的同学转发本文 关注 私信【0221】即可获取
