案例效果

不需要登录就要能访问到某一个功能

实现思路

  1. 在相应的功能上增加一个按钮,如分享按钮

  2. 写按钮事件,调运后台方法,生成对应链接

  3. 要生成的链接,首先要写一个后台controller与service,生成一个唯一key;

  4. 利用返回的唯一key,做rbac的登录过滤,此时需要一个前端loginforword,html;

  5. 将写的界面路径加到security-url.xml进行过滤;

操作步骤

  1. 在相应的功能上增加一个按钮,如分享按钮

  1. 写按钮事件,调运后台方法,生成对应链接

  1. 要生成的链接,首先要写一个后台controller与service,生成一个唯一key;

注意:此处的代码中usercode是定义好的用户编码,这个用户编码存在与员工管理,有不同角色和权限,当然可以根据不同需求用当前登录用户

  1. 利用返回的唯一key,做rbac的登录过滤,此时需要一个前端loginforword.html;

  1. 将写的界面路径加到security-url.xml进行过滤;

  1. 最终结果

注意:以上方式适用于7.1版本
7.2最新版本loginforword.html中的拼接方式有所不同,改成以下版本就可以使用

相关代码

1:分享按钮事件

function(btn,event,eOpts){ 
    var jegridview=btn.up("jegridview"); 
    var funcInfo=jegridview.funcData.info; 
    var funcCode=funcInfo.funcCode; 
    var resObj=JE.ajax({url:"/je/project/product/jepm/cust/getLoginKey",params:{editUser:"0",showView:"grid",pkValue:"",funcCode:funcCode}}); 
if(resObj.success){ 
   JE.alert("链接已经生成,链接为:<br/>"+"http://IP地址/loginforword.html?jekey="+resObj.obj); }else{ JE.alert('分享失败!'); 
                                                                                        }
}

2:loginforword.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>单点登录</title>
    <script src="/static/ux/jquery/jquery-1.9.1.min.js"></script>
    <script src="/static/ux/jquery/jquery.cookie.min.js"></script>
</head>
<body>
<script>
    //获取url中的参数
    function getUrlParam(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg); //匹配目标参数
        if (r != null) return unescape(r[2]);
        return null; //返回参数值
    }
    $(function () {
        var jekey=getUrlParam("jekey");
        $.ajax({
            type:"POST",
            url: "/rbac/login/login",
            data: {loginType:"JEKEY",code:jekey},
            success: function (data) {
                //将获取的参数进行转换
                if(data.code=='OK'){
                    if(data.message){
                        var infos=JSON.parse(data.message);
                        var funcCode=infos.funcCode;
                        var showView=infos.showView;
                        var modelID=infos.modelID;
                        $.cookie('authorization',data.obj);
                        var url="/index.html?funcCode="+funcCode+"&showView="+showView+"&modelID="+modelID;
                        if(showView=='grid'){
                            url="/index.html?funcCode="+funcCode+"&showView="+showView+"&whereSql="+modelID;
                        }
                        window.location.href=url;
                    }
                }
            }
        })
    });
</script>
</body>
</html>

关键字,相关问题

  • 跟案例相关的名词,或者包含的名词,用于检索使用
  • 跟案例相关的提问方式,用于检索使用
最后编辑: 肖海杰  文档更新时间: 2024-03-05 11:49   作者:肖海杰