开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):权限管理-前端整合】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11535
权限管理-前端整合
将前端后端整合完成后,将项目启动起来,先启用前端项目,
e:' \work\vs 1010\vue-admin-1010>npm run dev 启动过程可能会报错,再根据报错修改,如果没有错再启动后端接口,查看效果。
为了效果更加明显,将 acl_user 跟 acl_role 中的内容都删掉,在 as_user 中有个用户叫做 admin,admin 意思是管理员,在后台处理中会有一个超级管理员的角色,这个管理员角色能够有很多操作权限,所以一般可以用 rot 或者admin,在我们这个项目中是应用 admin 作为超级管理员,不需要授权,可以访问所有权限,针对他可以做不同的操作。
/** .
*判断用户是否系统管理员
* Cbaram userId
* @return
private boolean isSysAdmin (String userId) {
User user= userService. getById(userId);
if(null != user &&“admin' . equals (user. getUsername()) {
return true;
return false;
@Override
public List selectPermi ssionByUserId(String userId) {
List
if(this. isSysAdmin(userId))
//如果是超级管理员,获取所有菜单
selectPermissionList = baseMapper. selectList( wrapper: null);
else
selectPermissionList=baseMapper. selectPerhissionByUserId(userId)
List
List result = MemuHelper. bulid(permi ssionList) ;
return result;
如果是管理员就要查询所有,如果不是管理员就要根据当前用户查看权限,所以先用 admin 登录,然后登录之后再加用户,权限,用加完之后的内容再登录。
Your application is running here :http://localhost:9528启用之后。
2、启动接口,
启动 nacos,
有个问题是当中有乱码,原因是当前 nacos 是放在了一个中文目录下,一般来说,这种软件放的位置都不需要有中文,有中文也没有错,但是会出现乱码,原因是默认软件都不放置在带中名字中,以避免很多问题。
启动接口,先启用 Apigatewayapplication,
再启用 servicesaclapplication,然后网关要通过 nacos 找到里面配置的各种服务,在这个过程中不需要在 crtl 中加跨域注解,网关启动后,再将 acl 启动,
@SpringBootApplicatior
@EnableDi scoveryClient
@ComponentScan(" com atguigu' )
)@MapperScan(" com. atgui gu. aclservice. mapper' )
public class ServiceAclApplication {
public static void main(String[] args) {SpringApplication.run(ServiceAclApplication.class
,注意 apl 中 com atguigu、com. atgui gu. aclservice. Mapper 注解不能少
在 api 网关中 acl 规则也都做了配置
#设置路由 id
spring. cloud. gateway. routes[0]. id= service racl
#设置路由的 uri Ib://nacos 注册服务名称
spring. cloud. gateway. routes[0]. uri=lb://service acl
#设置路由断言,代理 servicerId 为 auth-service 的 auth/路径
spring. cloud. gateway. routes[0]. predicates= Path=/*/ac1/**
acl 中 controller 规则, @RequestMapping ("/admin/ac+/ index ),所以在里面添加 path=/*/acl/**
来到项目中测试一个登录查看如何登录
用一个超级管理员 admin 进行登录,密码是6个1,但是用来 acl 密码加密,点击登录,登录页面如下图所示。