Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to implement Admin User validation for Jira Plugin

Sudhanshu Pandey April 10, 2019

Hi, 

I have developed  a cross product plugin to get any user input from Admin User and save that in plugin DB. 

To get user input I am using form in  velocity template and sending the data using post method.

<form id="admin" class="aui" action="" method="POST">

To handle that POST request, I am using servlet where Admin User Validation is implemented --

@ComponentImport
private final UserManager userManager;

@ComponentImport
private final LoginUriProvider loginUriProvider;

@ComponentImport
private final TemplateRenderer templateRenderer;

@ComponentImport
private final PluginSettingsFactory pluginSettingsFactory;

@Inject
public MyPluginServlet(UserManager userManager, LoginUriProvider loginUriProvider, TemplateRenderer templateRenderer, PluginSettingsFactory pluginSettingsFactory) {
this.userManager = userManager;
this.loginUriProvider = loginUriProvider;
this.templateRenderer = templateRenderer;
this.pluginSettingsFactory = pluginSettingsFactory;
}

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

UserProfile user = userManager.getRemoteUser(request);
Boolean isUserAdmin = userManager.isSystemAdmin(user.getUserKey());
String username = user.getUsername();

if (username == null || !isUserAdmin) {
redirectToLogin(request, response);
return;
}
templateRenderer.render("admin.vm", response.getWriter());

}

private void redirectToLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.sendRedirect(loginUriProvider.getLoginUri(getUri(request)).toASCIIString());
}

private URI getUri(HttpServletRequest request) {
StringBuffer builder = request.getRequestURL();
if (request.getQueryString() != null) {
builder.append("?");
builder.append(request.getQueryString());
}
return URI.create(builder.toString());
}

 

Now, I want the same requirement to be implemented for Jira Plugin. 

As classes like UserManager and LoginUriProvider are from package com.atlassian.sal.api.user.* 

How can I implement admin user validation in Jira Plugin? If SAL can be used here then which version of SAL to be used for Jira Version-7.13.0 as I am getting build failure and I think its due to non compatible versions.

 

1 answer

1 accepted

0 votes
Answer accepted
Sudhanshu Pandey June 27, 2019

There could be some issue when you try to move the functionality you implemented in refApp to Jira Plugin. This can be due to version mismatch of both the plugins. I tried creating separate Jira Plugin and things went well for me.

Suggest an answer

Log in or Sign up to answer