在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);
}
}