Hello,
I'm new on developing JIRA plugin. I'm trying to write a customized authentication to integrate our company's SSO (Single Sign-On) with JIRA Service Desk, so that the users from our company's SSO could directly access JIRA without re-typing their usernames and passwords. I got the following errors from the log file. I seems like the customized authentication class can't be loaded. Any help or tip would be appreiciated.
Thank you,
Zee Xia
2017-09-11 15:55:28,528 localhost-startStop-1 INFO [c.a.jira.startup.JiraStartupLogger]
**********************************************************************************
JIRA 7.2.2 build: 72004 started. You can now access JIRA through your web browser.
**********************************************************************************
2017-09-11 15:55:28,547 Modification Check:thread-1 INFO [c.a.jira.startup.JiraStartupLogger]
___ Modifications ___________________________
Modified Files : None
Removed Files : None
2017-09-11 15:55:28,626 localhost-startStop-1 ERROR [c.a.jira.startup.LauncherContextListener] Unable to start JIRA.
java.lang.RuntimeException: Could not load security config 'seraph-config.xml': Unable to load authenticator class 'com.isdh.jira.sso.CustomSSOAuthenticator': com.isdh.jira.sso.CustomSSOAuthenticator : java.lang.ClassNotFoundException: com.isdh.jira.sso.CustomSSOAuthenticator
at com.atlassian.seraph.config.SecurityConfigFactory.loadInstance(SecurityConfigFactory.java:60)
at com.atlassian.seraph.config.SecurityConfigFactory.getInstance(SecurityConfigFactory.java:21)
at com.atlassian.jira.util.system.check.JRA21845Check.isWrongLoginCookieKey(JRA21845Check.java:27)
at com.atlassian.jira.util.system.check.JRA21845Check.getWarningMessage(JRA21845Check.java:16)
at com.atlassian.jira.util.system.check.SystemEnvironmentChecklist.getWarnings(SystemEnvironmentChecklist.java:39)
at com.atlassian.jira.util.system.check.SystemEnvironmentChecklist.getWarningMessages(SystemEnvironmentChecklist.java:52)
at com.atlassian.jira.util.system.check.SystemEnvironmentChecklist.getEnglishWarningMessages(SystemEnvironmentChecklist.java:81)
at com.atlassian.jira.upgrade.ConsistencyCheckImpl.checkSystemEnvironment(ConsistencyCheckImpl.java:206)
at com.atlassian.jira.upgrade.ConsistencyCheckImpl.printJIRAStartupMessage(ConsistencyCheckImpl.java:178)
at com.atlassian.jira.upgrade.ConsistencyCheckImpl.initialise(ConsistencyCheckImpl.java:162)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postTenantArrived$4(DefaultJiraLauncher.java:174)
at com.atlassian.jira.startup.DefaultInstantUpgradeManager$StartupTask.run(DefaultInstantUpgradeManager.java:139)
at com.atlassian.jira.startup.DefaultInstantUpgradeManager.runTask(DefaultInstantUpgradeManager.java:55)
at com.atlassian.jira.startup.DefaultInstantUpgradeManager.doNowOrWhenInstanceBecomesActive(DefaultInstantUpgradeManager.java:42)
at com.atlassian.jira.startup.DefaultJiraLauncher.postTenantArrived(DefaultJiraLauncher.java:171)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postDBActivated$3(DefaultJiraLauncher.java:159)
at com.atlassian.jira.tenancy.DefaultTenantManager.doNowOrWhenTenantArrives(DefaultTenantManager.java:55)
at com.atlassian.jira.startup.DefaultJiraLauncher.postDBActivated(DefaultJiraLauncher.java:156)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postDbLaunch$2(DefaultJiraLauncher.java:145)
at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.doNowOrEnqueue(DatabaseConfigurationManagerImpl.java:298)
at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.doNowOrWhenDatabaseActivated(DatabaseConfigurationManagerImpl.java:194)
at com.atlassian.jira.startup.DefaultJiraLauncher.postDbLaunch(DefaultJiraLauncher.java:135)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$start$0(DefaultJiraLauncher.java:101)
at com.atlassian.jira.util.devspeed.JiraDevSpeedTimer.run(JiraDevSpeedTimer.java:31)
at com.atlassian.jira.startup.DefaultJiraLauncher.start(DefaultJiraLauncher.java:99)
at com.atlassian.jira.startup.LauncherContextListener.initSlowStuff(LauncherContextListener.java:149)
at com.atlassian.jira.startup.LauncherContextListener.initSlowStuffInBackground(LauncherContextListener.java:134)
at com.atlassian.jira.startup.LauncherContextListener.contextInitialized(LauncherContextListener.java:91)
... 8 filtered
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.atlassian.seraph.config.ConfigurationException: Unable to load authenticator class 'com.isdh.jira.sso.CustomSSOAuthenticator': com.isdh.jira.sso.CustomSSOAuthenticator : java.lang.ClassNotFoundException: com.isdh.jira.sso.CustomSSOAuthenticator
at com.atlassian.seraph.config.SecurityConfigImpl.configureClass(SecurityConfigImpl.java:332)
at com.atlassian.seraph.config.SecurityConfigImpl.configureAuthenticator(SecurityConfigImpl.java:258)
at com.atlassian.seraph.config.SecurityConfigImpl.<init>(SecurityConfigImpl.java:194)
at com.atlassian.seraph.config.SecurityConfigFactory.loadInstance(SecurityConfigFactory.java:56)
... 40 more
... 2 filtered
at com.opensymphony.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:104)
at com.atlassian.seraph.config.SecurityConfigImpl.configureClass(SecurityConfigImpl.java:320)
... 43 more
2017-09-11 15:55:28,638 localhost-startStop-1 INFO [c.a.jira.startup.LauncherContextListener] Memory Usage:
---------------------------------------------------------------------------------
Heap memory : Used: 255 MiB. Committed: 365 MiB. Max: 499 MiB
Non-heap memory : Used: 150 MiB. Committed: 162 MiB. Max: 1264 MiB
---------------------------------------------------------------------------------
TOTAL : Used: 405 MiB. Committed: 527 MiB. Max: 1763 MiB
---------------------------------------------------------------------------------
2017-09-11 15:55:28,858 localhost-startStop-1 ERROR [o.a.c.c.C.[Catalina].[localhost].[/jira]] Exception starting filter trustedapps
java.lang.RuntimeException: Could not load security config 'seraph-config.xml': Unable to load authenticator class 'com.isdh.jira.sso.CustomSSOAuthenticator': com.isdh.jira.sso.CustomSSOAuthenticator : java.lang.ClassNotFoundException: com.isdh.jira.sso.CustomSSOAuthenticator
at com.atlassian.seraph.config.SecurityConfigFactory.loadInstance(SecurityConfigFactory.java:60)
at com.atlassian.seraph.config.SecurityConfigFactory.getInstance(SecurityConfigFactory.java:21)
at com.atlassian.security.auth.trustedapps.seraph.filter.SeraphTrustedApplicationsFilter.<init>(SeraphTrustedApplicationsFilter.java:16)
at com.atlassian.seraph.filter.TrustedApplicationsFilter.<init>(TrustedApplicationsFilter.java:17)
at com.atlassian.jira.security.auth.trustedapps.TrustedApplicationFilter.<init>(TrustedApplicationFilter.java:25)
... 3 filtered
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
... 11 filtered
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.atlassian.seraph.config.ConfigurationException: Unable to load authenticator class 'com.isdh.jira.sso.CustomSSOAuthenticator': com.isdh.jira.sso.CustomSSOAuthenticator : java.lang.ClassNotFoundException: com.isdh.jira.sso.CustomSSOAuthenticator
at com.atlassian.seraph.config.SecurityConfigImpl.configureClass(SecurityConfigImpl.java:332)
at com.atlassian.seraph.config.SecurityConfigImpl.configureAuthenticator(SecurityConfigImpl.java:258)
at com.atlassian.seraph.config.SecurityConfigImpl.<init>(SecurityConfigImpl.java:194)
at com.atlassian.seraph.config.SecurityConfigFactory.loadInstance(SecurityConfigFactory.java:56)
... 25 more
... 2 filtered
at com.opensymphony.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:104)
at com.atlassian.seraph.config.SecurityConfigImpl.configureClass(SecurityConfigImpl.java:320)
... 28 more
2017-09-11 15:55:28,901 localhost-startStop-1 INFO [c.a.jira.startup.DefaultJiraLauncher] Stopping launchers
2017-09-11 15:55:28,919 localhost-startStop-1 INFO [c.a.plugin.manager.DefaultPluginManager] Preparing to shut down the plugin system
2017-09-11 15:55:28,919 localhost-startStop-1 INFO [c.a.plugin.manager.DefaultPluginManager] Shutting down the plugin system
2017-09-11 15:55:28,920 localhost-startStop-1 WARN [c.a.plugin.servlet.DefaultServletModuleManager] PluginController passed via the PluginFrameworkShutdownEvent did not match that passed via PluginFrameworkStartedEvent
2017-09-11 15:55:28,935 Gemini Blueprint context shutdown thread2 DEBUG [c.a.activeobjects.osgi.ActiveObjectsServiceFactory] destroy
2017-09-11 15:55:29,240 Gemini Blueprint context shutdown thread1 WARN [c.a.prettyurls.atlassian-pretty-urls-plugin.spring]
Spring context destroyed : com.atlassian.prettyurls.atlassian-pretty-urls-plugin id(144) v(2.1.2)
2017-09-11 15:55:29,427 Gemini Blueprint context shutdown thread1 WARN [c.a.j.plugins.jira-auditing-plugin.spring]
Spring context destroyed : com.atlassian.jira.plugins.jira-auditing-plugin id(84) v(1.8.0)
2017-09-11 15:55:29,528 Gemini Blueprint context shutdown thread2 WARN [c.a.j.plugins.jira-editor-plugin.spring]
Spring context destroyed : com.atlassian.jira.plugins.jira-editor-plugin id(87) v(1.1.55)
2017-09-11 15:55:29,546 Gemini Blueprint context shutdown thread1 WARN [c.a.feedback.jira-feedback-plugin.spring]
Spring context destroyed : com.atlassian.feedback.jira-feedback-plugin id(33) v(7.2.2)
2017-09-11 15:55:29,695 Gemini Blueprint context shutdown thread2 WARN [c.a.jira.issue-link-web-plugin.spring]
Spring context destroyed : com.atlassian.jira.issue-link-web-plugin id(58) v(7.2.2)
2017-09-11 15:55:29,716 Gemini Blueprint context shutdown thread1 WARN [c.a.jira.less-integration.spring]
Spring context destroyed : com.atlassian.jira.less-integration id(63) v(7.2.2)
2017-09-11 15:55:29,832 Gemini Blueprint context shutdown thread1 INFO [c.a.j.plugins.monitor.MonitoringScheduler] Unscheduling metrics collector...
2017-09-11 15:55:29,832 Gemini Blueprint context shutdown thread1 INFO [c.a.j.plugins.monitor.MonitorLauncher] Stopped JIRA monitoring
2017-09-11 15:55:29,880 Gemini Blueprint context shutdown thread2 WARN [c.a.jira.postsetup-announcements-plugin.spring]
Spring context destroyed : com.atlassian.jira.postsetup-announcements-plugin id(68) v(7.2.2)
2017-09-11 15:55:29,931 Gemini Blueprint context shutdown thread2 WARN [c.a.jira.share-plugin.spring]
Spring context destroyed : com.atlassian.jira.share-plugin id(73) v(7.2.2)
2017-09-11 15:55:29,937 Gemini Blueprint context shutdown thread1 WARN [c.a.jira.soy-plugin.spring]
Spring context destroyed : com.atlassian.jira.soy-plugin id(74) v(7.2.2)
2017-09-11 15:55:29,944 Gemini Blueprint context shutdown thread2 WARN [c.a.jira.tzdetect-plugin.spring]
Spring context destroyed : com.atlassian.jira.tzdetect-plugin id(75) v(2.3.1)
2017-09-11 15:55:30,028 Gemini Blueprint context shutdown thread1 WARN [c.a.pocketknife.featureflags-plugin.spring]
Spring context destroyed : com.atlassian.pocketknife.featureflags-plugin id(143) v(0.5.4)
2017-09-11 15:55:30,144 Gemini Blueprint context shutdown thread1 WARN [c.a.j.plugins.workflow-designer-plugin.spring]
Spring context destroyed : com.atlassian.jira.plugins.workflow-designer-plugin id(97) v(7.1.8)
2017-09-11 15:55:30,211 Gemini Blueprint context shutdown thread2 WARN [c.a.l.plugins.quickreload.spring]
Spring context destroyed : com.atlassian.labs.plugins.quickreload id(106) v(1.24.1)
2017-09-11 15:55:30,847 localhost-startStop-1 INFO [c.a.jira.startup.DefaultJiraLauncher] JIRA launchers stopped in 1945ms