起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2003|回复: 11

[结贴] bex5开发APP怎样实现手机每次退出app应用再次进入都必须登录

[复制链接]

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2016-12-22 22:27:43 | 显示全部楼层 |阅读模式
bex5开发APP怎样实现手机每次退出app应用再次进入都必须登录

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-12-23 09:24:57 | 显示全部楼层
可以试试在登录页面的逻辑里面,去除把密码和用户名存在缓存的部分
回复 支持 反对

使用道具 举报

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
 楼主| 发表于 2016-12-23 11:46:51 | 显示全部楼层
大雁子 发表于 2016-12-23 09:24
可以试试在登录页面的逻辑里面,去除把密码和用户名存在缓存的部分

刚开始用Bex5,没找到登录页面的逻辑
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-12-23 11:50:28 | 显示全部楼层
登录页面路径:/UI2/portal/base/login/login.w
回复 支持 反对

使用道具 举报

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
 楼主| 发表于 2016-12-23 12:02:52 | 显示全部楼层
大雁子 发表于 2016-12-23 11:50
登录页面路径:/UI2/portal/base/login/login.w

/UI2/portal/mobile/login/login.w手机端的登录,pc端的登录全是基于/UI2/portal/base/login/login.w?
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-12-23 12:29:52 | 显示全部楼层
对,是的
回复

使用道具 举报

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
 楼主| 发表于 2016-12-23 16:40:30 | 显示全部楼层

没什么效果
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-12-23 16:45:33 | 显示全部楼层
能看一下你是怎么改造代码的么?
回复 支持 反对

使用道具 举报

1

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
 楼主| 发表于 2016-12-23 17:27:59 | 显示全部楼层
大雁子 发表于 2016-12-23 16:45
能看一下你是怎么改造代码的么?

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.justep.auth.client.AuthUtils;
import com.justep.biz.client.Action;
import com.justep.biz.client.ActionEngine;
import com.justep.biz.client.ActionResult;
import com.justep.biz.client.ActionUtils;
import com.justep.cache.SystemCache;
import com.justep.message.ClientMessages;
import com.justep.ui.JProcessor;
import com.justep.ui.system.service.permission.ClassicPortalRequestWrapper;
import com.justep.ui.system.service.portal.LoginAction;
import com.justep.ui.util.UIUtils;


public class Login implements JProcessor {
       
        static Boolean useCache = false; //!SystemUtils.isDebug(); 权限变了缓存没清有问题

        public void execute(HttpServletRequest request, HttpServletResponse response)
                        throws ServletException, IOException {

                //hcr 支持oauth登录
                        AuthUtils.loginAuthServer(response);
               
                String bsessionid = null;
                String sysCode = null;
                String orgVersion = null;
                /*Cookie[] cookies = request.getCookies();
                if (cookies != null){
                        for (int i = 0; i < cookies.length; i++) {
                          String name = cookies.getName();
                          if(name.equals("bsessionid")){
                                  bsessionid = cookies.getValue();
                          }
                        }
                }*/
               
                if(bsessionid == null){
                        ActionResult result = LoginAction.execute(request);
                        if(result.isSuccess()){
                                bsessionid = result.getBSessionID();
                                sysCode = result.getSysCode();
                               
                                //get orgVersion
                                List<Object> datas = result.getDatas();
                                JSONObject resultParam = (JSONObject)datas.get(0);
                                @SuppressWarnings("rawtypes")
                                List values = (List)resultParam.get("value");
                                orgVersion = (String)values.get(values.size()-1);                               
                        }else{
                                JSONObject content = null;
                                String code = result.getCode();
                                if(ClientMessages.CON_ERROR1.equals(code)||ClientMessages.ACTION_ERROR1.equals(code)){
                                        content = new JSONObject();
                                        content.put("flag", false);
                                        content.put("message", result.getMessage());
                                }else{
                                        content = (JSONObject)result.getContent();
                                }
                                response.setCharacterEncoding("UTF-8");
                                response.setContentType(ActionUtils.JSON_CONTENT_TYPE);
                                OutputStream output = response.getOutputStream();
                                output.write(content.toString().getBytes("UTF-8"));
                                output.flush();
                                output.close();
                                return;
                        }
                }       

                //伪装参数, 获取上下文信息
                String useName = request.getParameter("username");
                String executor = request.getParameter("executor");
                JSONObject data;
                JSONObject context;
               
                if(useName==null || !useCache || !SystemCache.cache.containsKey(useName)){/*!useCache || !SystemCache.cache.containsKey(useName)*/
                        Map<String, String> params = new HashMap<String, String>();
                        params.put("process", "/SA/OPM/system/systemProcess");
                        params.put("activity", "mainActivity");
                        params.put("$functionTree", "true");
                        params.put("$widgetList", "true");
                        if(executor != null)
                                params.put("executor", executor);
                        else       
                                params.put("$agentList", "true");
                        params.put("bsessionid", bsessionid);
                        context = (JSONObject)UIUtils.getWindowContext(new ClassicPortalRequestWrapper(request, params), null, false);
                        if(context.getBoolean("flag")){
                                data = (JSONObject)context.get("data");
                        }else{
                                response.setCharacterEncoding("UTF-8");
                                response.setContentType(ActionUtils.JSON_CONTENT_TYPE);
                                OutputStream output = response.getOutputStream();
                                output.write(context.toString().getBytes("UTF-8"));
                                output.flush();
                                output.close();
                                return;
                        }
                       
                        //取系统注入代码
                        context.put("sys", sysCode);
                        context.put("bsessionid", bsessionid);
                        //不能缓存
                        data.put("bsessionid", bsessionid);
                        JSONObject pid = (JSONObject)data.get("bizParams");
                        pid = (JSONObject)pid.get("value");
                        String personID =        (String)pid.get("currentPersonID");
                        data.put("layout", this.getLayout(personID, bsessionid));
                        data.put("orgVersion", orgVersion);               
                       
                        response.setCharacterEncoding("UTF-8");
                        response.setContentType(ActionUtils.JSON_CONTENT_TYPE);
                        PrintWriter out = response.getWriter();
                        out.write(context.toString());
                        out.flush();
                       
                        /*if(useCache && (useName != null)){
                                context.put("sys", "__sysCode__");
                                context.put("bsessionid", "__bsessionid__");
                                data.put("bsessionid", "__bsessionid__");
                                data.put("orgVersion", "__orgVersion__");               
                                String ctx = context.toJSONString();
                                SystemCache.cache.put(useName, ctx);
                        }*/
                       
                }else{
                        String ctx = SystemCache.cache.get(useName);

                        ctx = ctx.replace("__bsessionid__", bsessionid);
                        if(sysCode != null){
                                ctx = ctx.replace("__sysCode__", sysCode);
                        }else{
                                ctx = ctx.replace("__sysCode__", "");
                        }
                        if(orgVersion != null){
                                ctx = ctx.replace("__orgVersion__", orgVersion);
                        }else{
                                ctx = ctx.replace("__orgVersion__", "");
                        }

                        response.setCharacterEncoding("UTF-8");
                        response.setContentType(ActionUtils.JSON_CONTENT_TYPE);
                        PrintWriter out = response.getWriter();
                        out.write(ctx);
                        out.flush();
                }
        }
        private JSONObject getLayout(String useName, String bsessionID) throws JSONException{

                Action layoutAction = new Action();
                layoutAction.setProcess("/portal2/process/portal/portalProcess");
                layoutAction.setActivity("index");
                layoutAction.setName("selectPortal3ProfilesAction");
                layoutAction.setParameter("personID", useName);
                ActionResult result = ActionEngine.invokeAction(layoutAction, ActionUtils.JSON_CONTENT_TYPE, bsessionID, null, null);
               
                JSONObject temp = (JSONObject)result.getContent();
                temp = (JSONObject)temp.get("data");
                temp = (JSONObject)temp.get("value");
               
                String[] relations = new String[]{"sFunctree", "sPortal", "sOther"};
                for(String rel : relations){
                        Object s = temp.get(rel);
                        if( (s instanceof String && ((String)s).equals(""))) //s == JSONObject.NULL ||
                                s = "{}";
                        temp.remove(rel);
                        temp.put(rel.substring(1).toLowerCase(), JSON.parse((String)s));
                }
               
                return temp;
        }

}
回复 支持 反对

使用道具 举报

1

主题

1831

帖子

821

积分

高级会员

Rank: 4

积分
821
QQ
发表于 2016-12-23 17:32:43 | 显示全部楼层
不应该去js文件里面改么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 16:11 , Processed in 0.065312 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表