|
不需要登录就要能访问到某一个功能,在JEPAAS中实现这个需求有以下几步- 在相应的功能上增加一个按钮,如分享按钮
- 写按钮事件,调运后台方法,生成对应链接
- 具体代码:
- <font size="5"><font face="微软雅黑"><b>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('分享失败!');
- }
- }</b></font></font>
复制代码- 要生成的链接,首先要写一个后台controller与service,生成一个唯一key
- 注意:此处的代码中usercode是定义好的用户编码,这个用户编码存在与员工管理,有不同角色和权限,当然可以根据不同需求用当前登录用户
- 利用返回的唯一key,做rbac的登录过滤,此时需要一个前端loginforword,html
- 具体代码:
- <font size="5"><font face="微软雅黑"><b><!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></b></font></font>
复制代码- 将写的界面路径加到security-url.xml进行过滤
- 最终结果
- 注意:以上方式适用于7.1版本
- 7.2最新版本loginforword.html中的拼接方式有所不同,改成以下版本就可以使用
|
|