Hello,
I have error 404 on page http://wsm-0913:2990/jira/plugins/servlet/test
userManager.getRemoteUsername() is deprecated
userManager.isSystemAdmin() is deprecated
System:
IDEA: 15
jdk1.8.0_45
ATLAS Version: 6.1.0
ATLAS Maven: apache-maven-3.2.1
AMPS Version: 6.1.2
UPD1:
Windows 7 x64
JIRA version 6.4.12
I run
atlas-run-standalone --product jira --version 6.4.12
tutorial page: https://developer.atlassian.com/docs/getting-started/learn-the-development-platform-by-example/control-access-with-sal
tnx
UPD2:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.atlassian.plugins.tutorial.refapp</groupId> <artifactId>adminUI</artifactId> <version>1.0.0-SNAPSHOT</version> <organization> <name>Example Company</name> <url>http://www.example.com/</url> </organization> <name>adminUI</name> <description>This is the com.atlassian.plugins.tutorial.refapp:adminUI plugin for Atlassian Refapp.</description> <packaging>atlassian-plugin</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.atlassian.sal</groupId> <artifactId>sal-api</artifactId> <version>2.0.17</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.atlassian.plugin</groupId> <artifactId>atlassian-spring-scanner-annotation</artifactId> <version>${atlassian.spring.scanner.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.atlassian.plugin</groupId> <artifactId>atlassian-spring-scanner-runtime</artifactId> <version>${atlassian.spring.scanner.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> </dependency> <!-- WIRED TEST RUNNER DEPENDENCIES --> <dependency> <groupId>com.atlassian.plugins</groupId> <artifactId>atlassian-plugins-osgi-testrunner</artifactId> <version>${plugin.testrunner.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> <version>1.1.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.2-atlassian-1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.8.5</version> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>com.atlassian.platform</groupId> <artifactId>platform</artifactId> <version>${platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.atlassian.platform</groupId> <artifactId>third-party</artifactId> <version>${platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-refapp-plugin</artifactId> <version>${amps.version}</version> <extensions>true</extensions> <configuration> <productVersion>${refapp.version}</productVersion> <enableQuickReload>true</enableQuickReload> <enableFastdev>false</enableFastdev> <instructions> <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key> <!-- Add package to export here --> <Export-Package>com.atlassian.plugins.tutorial.refapp.api,</Export-Package> <!-- Add package import here --> <Import-Package>org.springframework.osgi.*;resolution:="optional", org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package> <!-- Ensure plugin is spring powered - see https://extranet.atlassian.com/x/xBS9hQ --> <Spring-Context>*</Spring-Context> </instructions> </configuration> </plugin> <plugin> <groupId>com.atlassian.plugin</groupId> <artifactId>atlassian-spring-scanner-maven-plugin</artifactId> <version>1.2.6</version> <executions> <execution> <goals> <goal>atlassian-spring-scanner</goal> </goals> <phase>process-classes</phase> </execution> </executions> <configuration> <scannedDependencies> <dependency> <groupId>com.atlassian.plugin</groupId> <artifactId>atlassian-spring-scanner-external-jar</artifactId> </dependency> </scannedDependencies> <verbose>false</verbose> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <properties> <platform.version>3.0.0</platform.version> <refapp.version>3.1.0</refapp.version> <amps.version>6.1.2</amps.version> <plugin.testrunner.version>1.2.3</plugin.testrunner.version> <atlassian.spring.scanner.version>1.2.6</atlassian.spring.scanner.version> <!-- This key is used to keep the consistency between the key in atlassian-plugin.xml and the key to generate bundle. --> <atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key> </properties> </project>
<?xml version="1.0" encoding="UTF-8"?> <atlassian-plugin key="${atlassian.plugin.key}" name="${project.name}" plugins-version="2"> <plugin-info> <description>${project.description}</description> <version>${project.version}</version> <vendor name="${project.organization.name}" url="${project.organization.url}"/> <param name="plugin-icon">images/pluginIcon.png</param> <param name="plugin-logo">images/pluginLogo.png</param> <param name="configure.url">/admin/plugins/gmaps/configurePlugin.action</param> </plugin-info> <!-- add our i18n resource --> <resource type="i18n" name="i18n" location="adminUI"/> <!-- add our web resources --> <web-resource key="adminUI-resources" name="adminUI Web Resources"> <dependency>com.atlassian.auiplugin:ajs</dependency> <resource type="download" name="adminUI.css" location="/css/adminUI.css"/> <resource type="download" name="adminUI.js" location="/js/adminUI.js"/> <resource type="download" name="images/" location="/images"/> <context>adminUI</context> </web-resource> <servlet name="adminUI" class="com.atlassian.plugins.tutorial.refapp.MyPluginServlet" key="test"> <url-pattern>/test</url-pattern> </servlet> <!-- import from the product container --> <component-import key="applicationProperties" interface="com.atlassian.sal.api.ApplicationProperties"/> <component-import key="templateRenderer" interface="com.atlassian.templaterenderer.TemplateRenderer" filter=""/> <component-import key="userManager" interface="com.atlassian.sal.api.user.UserManager" filter=""/> <component-import key="loginUriProvider" interface="com.atlassian.sal.api.auth.LoginUriProvider" filter=""/> <component-import key="pluginSettingsFactory" interface="com.atlassian.sal.api.pluginsettings.PluginSettingsFactory" filter=""/> </atlassian-plugin>
it's work
package com.atlassian.plugins.tutorial.refapp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import com.atlassian.sal.api.user.UserManager; public class MyPluginServlet extends HttpServlet { private UserManager userManager; private static final Logger log = LoggerFactory.getLogger(MyPluginServlet.class); public MyPluginServlet() {} @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().write("<html><body>Hello! You did it.</body></html>"); } }
does't work
package com.atlassian.plugins.tutorial.refapp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import com.atlassian.sal.api.user.UserManager; public class MyPluginServlet extends HttpServlet { private UserManager userManager; private static final Logger log = LoggerFactory.getLogger(MyPluginServlet.class); public MyPluginServlet(UserManager userManager) { this.userManager = userManager; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().write("<html><body>Hello! You did it.</body></html>"); } }
Remove: filter="Leave blank"
replace
<component-import key="templateRenderer" interface="com.atlassian.templaterenderer.TemplateRenderer" filter="Leave blank"/> <component-import key="userManager" interface="com.atlassian.sal.api.user.UserManager" filter="Leave blank"/> <component-import key="loginUriProvider" interface="com.atlassian.sal.api.auth.LoginUriProvider" filter="Leave blank"/> <component-import key="pluginSettingsFactory" interface="com.atlassian.sal.api.pluginsettings.PluginSettingsFactory" filter="Leave blank"/>
with
<component-import key="templateRenderer" interface="com.atlassian.templaterenderer.TemplateRenderer"/> <component-import key="userManager" interface="com.atlassian.sal.api.user.UserManager"/> <component-import key="loginUriProvider" interface="com.atlassian.sal.api.auth.LoginUriProvider"/> <component-import key="pluginSettingsFactory" interface="com.atlassian.sal.api.pluginsettings.PluginSettingsFactory"/>
Community moderators have prevented the ability to post new answers.
Hey everyone, @Thomas Semrok found the answer!
Here is the solution (YES it worked for me!): https://answers.atlassian.com/questions/31680685
Do you use the UserManager of the Shared Access Layer SAL? So it depends on your version of SAL whether the method is deprecated or not. Usually they will tell you what to use instead.
https://docs.atlassian.com/sal-api/2.4.0/sal-api/apidocs/com/atlassian/sal/api/user/UserManager.html
In Version 2.4 the method is not deprecated. In 2.10. they tell you to user isSystemAdmin(UserKey) instead:
so use:
userManager.isSystemAdmin(userManager.getRemoteUserKey());
You can check whether a user is admin or not using another approach withaout SAL:
ApplicationUser shownAppUser = getUserManager().getUserByKey(jiraUserName); boolean isAdmin = ComponentAccessor.getGlobalPermissionManager().hasPermission(GlobalPermissionKey.ADMINISTER, shownAppUser);
Or if you want to know if the logged in user is admin use:
ApplicationUser loggedInUser = ComponentAccessor.getJiraAuthenticationContext().getUser(); boolean isAdmin = ComponentAccessor.getGlobalPermissionManager().hasPermission(GlobalPermissionKey.ADMINISTER, loggedInUser);
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I can not find these function here https://docs.atlassian.com/jira/6.4.3/com/atlassian/jira/user/util/UserManager.html.
What is JIRA version?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Community moderators have prevented the ability to post new answers.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.