Java 获取jira工作流验证程序中的当前用户

Java 获取jira工作流验证程序中的当前用户,java,jira,jira-plugin,opensymphony,Java,Jira,Jira Plugin,Opensymphony,我想创建一个工作流验证程序,它不允许问题报告者执行工作流中的某些步骤。为此,我必须获取用户对象或执行操作的用户的用户id。我该怎么做呢?以下是我如何做到这一点的: private String getCurrentIssueProcessorId(Map<?, ?> transientVars, Map<?, ?> args){ String processorId = (String) args.get(ARG_USER_NAME); i

我想创建一个工作流验证程序,它不允许问题报告者执行工作流中的某些步骤。为此,我必须获取用户对象或执行操作的用户的用户id。我该怎么做呢?

以下是我如何做到这一点的:

private String getCurrentIssueProcessorId(Map<?, ?> transientVars, Map<?, ?> args){
        String processorId = (String) args.get(ARG_USER_NAME);
        if(null == processorId || processorId.isEmpty()){
            WorkflowContext workflowContext = (WorkflowContext) transientVars.get(ARG_CONTEXT);
            processorId = workflowContext.getCaller();
        }

        if(logger.isDebugEnabled()){
            logger.debug("Issue processor: " + processorId);
        }

        return processorId;
}
私有字符串getCurrentIssueProcessorId(映射临时变量、映射参数){
字符串处理器ID=(字符串)args.get(ARG\u用户名);
if(null==processorId | | processorId.isEmpty()){
WorkflowContext=(WorkflowContext)transientVars.get(ARG_CONTEXT);
processorId=workflowContext.getCaller();
}
if(logger.isDebugEnabled()){
logger.debug(“问题处理器:“+processorId”);
}
返回处理器ID;
}

其中,
ARG\u CONTEXT
是字符串
CONTEXT
ARG\u USER\u NAME
是字符串
username
注入
JiraAuthenticationContext
,然后调用
JiraAuthenticationContext.getLoggedInUser()

您可以在此处找到有关JiraAuthenticationContext的文档:

您不能只注入
JiraAuthenticationContext
然后调用JiraAuthenticationContext.getUser()?我想我可以。只是我不知道存在这样的类:)PS:authContext.getUser()似乎不受欢迎您正在jira 7上开发?使用jira 5.0 API进行开发:)我的eclipse将此方法标记为不受欢迎。我接受您的答案,不过我的解决方案将保持不变:)谢谢!:)我建议您坚持使用atlassian API方式,这样就不会有任何问题-例如,在您的jira实例进行小规模升级的情况下。