0
回答
spring security 3角色切换功能的疑问
华为云4核8G,高性能云服务器,免费试用   
在网上看了很多的文章 对于使用spring security3做系统权限认证

需求:
比如osc账号有role1,role2角色
role1角色有访问1.html和2.html的权限
role2角色拥有3.html和4.html的权限

根据网上的一些文章 根据账号osc得到所有的权限
也就是1.html 2.html 3.html 4.html全部存储在一个 Collection<GrantedAuthority>中
在页面展示的时候一次性的全部展示出他所拥有的页面的权限 也就是菜单栏有1 2 3 4.html
我现在的想法就是在前台添加一个角色的下拉框
根据我选择的角色去展示他自己拥有的菜单
比如osc账号下拉框中有role1 role2
当选择role1时菜单只有1 2.html
当选择role2时菜单只有3 4.html

现在有点小疑问 
我登陆成功后 进入主界面 首先显示的是第一个角色
下面是根据Authentication authentication = getAuthentication();
User user = authentication.getPrincipal();
roleList = roleService.findRolesByUser(User user);
moduleList = moduleService.findModuleListByRole(roleList.get(0));
直接将roleList用于下拉框作为数据?
而下面的moduleList直接就作为菜单?

如果是这样的话那我切换角色的时候在去Ajax请求菜单列表?
我怎么获取当前登陆的是什么角色?(spring security3中有方法不?还是我得写入session?)

当切换角色之后  怎么控制这个角色能用哪些url?(基于url地址的过滤)
比如我在role1角色下 输入3.html是禁止访问的

个人理解是用户登陆的时候自动的调用了getAuthorities方法
去数据库中查找所有属于该用户的角色->url 然后在显示所有的
貌似在文档中也没看到单独取出一个角色的url用来显示  后面在去验证 调用 显示
感觉都是一次性全部取出然后在一起显示在页面上的

网上看的一些资料貌似没有看到角色切换的例子
望前辈们指点



举报
张艺辰
发帖于5年前 0回/600阅
顶部