Happy3w

如何模拟登录

2017.02.14
在NC应用服务器上,有时候需要在没有客户端登录时,获取登录用户的权限。 那么可以做一个模拟登录来实现。 代码示例: 1、设置权限
    /**
     * 设置token.
     */
    private static void setToken() {
        IPriviledgedGenerator tokenGenerator =
                (IPriviledgedGenerator) BusinessAppServer.getInstance().getContext()
                        .lookup("priviledgedTokenGenerator");
        byte[] bytes = tokenGenerator.genPriviledgedToken();
        NetStreamContext.setToken(bytes);
    }
2、用一个拟定的默认用户登录。
    /**
     * 用默认用户设置权限。
     * 
     * @param ds 数据源。
     */
    private void loginAsDefault() {
        TaskContext.setToken();
        if (StringUtil.isBlank(InvocationInfoProxy.getInstance().getGroupId())) {
            InvocationInfoProxy.getInstance().setGroupId(IOrgConst.GLOBEORG);
            InvocationInfoProxy.getInstance().setGroupNumber("0000");
            InvocationInfoProxy.getInstance().setRunAs(UserExit.DEFAULT_USERID_VALUE);
            InvocationInfoProxy.getInstance().setUserCode(UserExit.DEFAULT_USERID_VALUE);
            InvocationInfoProxy.getInstance().setUserDataSource(this.datasource);
        }
    }