【问题标题】:Get the current user inside jira workflow validator在 jira 工作流验证器中获取当前用户
【发布时间】:2015-11-10 12:12:16
【问题描述】:

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

【问题讨论】:

    标签: java jira jira-plugin opensymphony


    【解决方案1】:

    注入JiraAuthenticationContext然后调用jiraAuthenticationContext.getLoggedInUser();

    您可以在此处找到有关 JiraAuthenticationContext 的文档: https://docs.atlassian.com/jira/5.0.1/com/atlassian/jira/security/JiraAuthenticationContext.html

    【讨论】:

    • 我接受你的回答,尽管我会用我的解决方案保持原样:)
    • 谢谢! :) 我建议您坚持使用 atlassian API 方式,这样就不会有任何问题 - 例如以防您的 jira 实例小幅升级。
    【解决方案2】:

    这是我设法做到的:

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

    其中ARG_CONTEXT 是字符串contextARG_USER_NAME 是字符串username

    【讨论】:

    • 你不能只注入JiraAuthenticationContext 然后调用jiraAuthenticationContext.getUser(); ?
    • 我想我可以。只是我不知道存在这样的课程:)
    • PS:authContext.getUser() 似乎已被弃用
    • 你在 jira 7 上开发?
    • 使用 jira 5.0 API 开发 :) 我的 eclipse 将此方法标记为已弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多