NC单点登录设置默认界面

360 篇文章 104 订阅

NC单点登录设置默认界面

单点登录默认打开消息中心

package nc.sso.demo;

import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Logger;
import nc.desktop.ui.Workbench;
import nc.desktop.ui.WorkbenchEnvironment;
import nc.funcnode.ui.FuncletInitData;
import nc.funcnode.ui.FuncletWindowLauncher;
import nc.itf.uap.bbd.func.IFuncRegisterQueryService;
import nc.login.sso.ui.SSOLoader;
import nc.sfbase.client.ClientToolKit;
import nc.ui.pub.msg.PfLinkData;
import nc.vo.pub.BusinessException;
import nc.vo.sm.funcreg.FuncRegisterVO;

public class DemoSSOUILoader extends SSOLoader {

	@Override
	public void appletInited() {
		// TODO Auto-generated method stub
		// 父窗体
	    Workbench parent = WorkbenchEnvironment.getInstance().getWorkbench();
		String param = ClientToolKit.getAppletParam("nodeid");
		//nodeid=messagecenter 单点登录打开至消息中心
		if("messagecenter".equals(param)) {
		    
		    /*  FuncRegisterVO frvo = new FuncRegisterVO();
            frvo.setFuncode("消息中心");
            frvo.setOwn_module("10");
            frvo.setIsbuttonpower(UFBoolean.FALSE);
            frvo.setClass_name("nc.message.reconstruction.NCMessageMainUI");
            FuncletWindowLauncher.openFuncNodeInTabbedPane(parent, frvo,
                new FuncletInitData(1, pflink), null, true); */
		    
		    parent.getWorkSpaceTabbedPane().getModel().setSelectedIndex(1);
		}else {
		    
		    String systemcode = "local";// 默认系统编码
	        // 功能注册节点
	        String funCode = param;
	        //pk
	        String pk = ClientToolKit.getAppletParam("pk");
	        if (param.contains(":")) {
	            funCode = param.split(":")[0];
	            systemcode = param.split(":")[1];
	        }

	        IFuncRegisterQueryService service = NCLocator.getInstance().lookup(
	                IFuncRegisterQueryService.class);

	        FuncRegisterVO FrvO = null;
	        try {
	            FrvO = service.queryFunctionByCode(funCode);// 功能节点编号
	        } catch (BusinessException e) {
	        }
	        // **********第一种:打开流程单据卡片界面*********************************************************************
	        PfLinkData pflink = new PfLinkData();

	        Logger.debug("pk=" + pk);

	        pflink.setBillID(pk); // 本单据ID

	        //pflink.setBillType("6403"); // 本单据类型

	        // pflink.setSourceBillType("SALE"); // 上游单据类型

	        // pflink.setPkOrg("0001A6100000000009OU"); // 公司

	        //int height = ClientToolKit.getUserHeight() - 40;

	        //int width = ClientToolKit.getUserWidth() - 40;

	        // 卡片形式打开
	        /*
	         * FuncletWindowLauncher.openFuncNodeForceModalDialog(null, FrvO, new
	         * FuncletInitData(1, pflink), null, true, new Dimension( width,
	         * height), null);
	         */
	        // 页签形式打开
	        //parent.firePropertyChange(propertyName, oldValue, newValue);

	            FuncletWindowLauncher.openFuncNodeInTabbedPane(null, FrvO,
	                new FuncletInitData(1, pflink), null, true); 
	        	        
	        Logger.debug("页签已打开");

	        String[] script = new String[] { "if(opener)opener.ncNodeAppletMap.put('"
	                + systemcode + "',findNCApplet())" };
	        ClientToolKit.callJavaScript("eval", script);
		    
		}
		
	

	}

}


写一个DemoSSOUILoader继承原有的SSOLoader重写appletInited方法0代表功能导航,1是消息中心

	    Workbench parent = WorkbenchEnvironment.getInstance().getWorkbench();
		    parent.getWorkSpaceTabbedPane().getModel().setSelectedIndex(1);


如使用上面参考代码使用此链接进行登录进行测试
uclient://start/http://127.0.0.1:80/?ssoKey=1596097658238-9096791302285095722&uiloader=nc.sso.demo.DemoSSOUILoader&nodeid=messagecenter

登录时消息中心默认工作任务

在nc.message.reconstruction.NCMessageMainUI这个类里面的setDefaultSelectedNode方法如下设置,也可更改为其它默认值

private void setDefaultSelectedNode()
	{
		setMsgBoxTreeSelected(IMessageBoxCode.WORKLIST);
	}

消息中心默认显示三个月

在nc.message.msgcenter.msgbox.AbstractMessageBox类中,getMsgQueryInfo方法里面把7天更改为90天即可

	public MsgQueryInfo getMsgQueryInfo()
	{
		if (qryinfo == null)
		{
			qryinfo = new MsgQueryInfo();
			qryinfo.setQuikdate("90");
			qryinfo.setHandle(false);
			qryinfo.setShowQry(false);
		}
		return qryinfo;
	}

原文出处:https://blog.csdn.net/qq_38888284/article/details/116839702

SSO(Single sign-on)即单点登录技术。它是指在多个子系统的大型应用中,用户在子系统之间进行切换时,不需要每次都重新输入用户的身份信息,从而做到一处认证,整个应用系统都能有效识别。单点登录技术的系统集成功能为当前企事业单位尤其是大型多子系统企业系统集成提供了完美的解决方案。它使得这些原有系统能够合理的集成起来,对外提供统一的界面风格和唯一的登录入口。单点登录只是一种功能概念,并没有对具体的实现方式进行定义和限制。NC-Portal的单点登录方案,就是SSO技术的一种实现方式。 NC-Portal的SSO方案是基于凭证的思想设计。对于NC-Portal集成的每个第三方系统都有一个制作凭证的页面,该页面用于当前登录的portal用户输入对应的第三方系统的用户信息,在正常情况下,该制作凭证的页面最多出现一次。当用户输入的第三方系统登录信息进行验证后,会自动在portal系统的数据库中建立一对凭证槽和凭证信息,这对信息记录了portal用户在特定的portal布局和特定的portlet下,与该第三方系统的身份对应关系。当该用户之后登录portal并进入被集成第三方系统时,portal系统负责获取之前成功建立的对应第三方系统身份信息,并用该身份信息进行第三方系统的身份认证。这一切的操作对当前登录用户来说都是透明的,他们看到的是没有输入任何身份信息而以正确的身份进入了第三方系统。另外,在用户每次登录第三方系统时,都会根据第三方系统的要求进行身份认证,因此这个登录过程是安全的。 对于NC-Portal来说,对Web系统的集成提供了完善的支持和解决,对Web系统的集成,目前有大小之分。集成一个单独的系统如NC、IUFO、BO、OA系统采用单独的一个布局存放(当然,该布局也是由一个portlet组成),这些Web系统称为“大”系统。另外,还存在一些集成第三方系统的“小”portlet,如NC待办事务Portlet、NC报表Portlet、IUFO报表Portlet等,这些是以“小”Portlet的形式出现的。他们主要提供一些对集成系统的辅助功能,如对NC待办事务的提取、对IUFO报表信息的提取,这两种方式功能侧重点略有不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值