Dear Sonar Folks,
We have recently migrated to Sonar 6.1. We have enabled LDAP and it is working well. We did hit a snag during the upgrade. We migrated from 5.1 to 5.6 and then from 5.6 to 6.1. Somewhere during that process we lost the LDAP plugin. So after the upgrade, we added the plugin again.
However, any login (even admin) using IE 11 does not seem to complete. The Log in screen appears. If I enter the wrong password, it alerts me. However, after login, the menus at the top of the page are missing the Administration option and "Administrator" doesn't replace the "Log in" text in the top right.
Logging in works correctly if we use Firefox or Chrome.
The IE web debugger is complaining of two warnings:
HTML1416: Unexpected character in comment end. Expected "-->".
File: profiles, Line: 80, Column: 290
HTML1416: Unexpected character in comment end. Expected "-->".
File: profiles, Line: 105, Column: 5
I ran a Fiddler Capture and compared Chrome with IE. there weren't any clear causes. After it calls api/authentication/login, it seems to call /. On that page, I noticed that IE doesn't know the userName or user variables.
IE 11
window.SS = {
hoursInDay: 8,
user: '',
userName: '',
userEmail: '',
lf: {
enableGravatar: true,
gravatarServerUrl: '
https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon'
},
updateCenterActive: true,
'sonar.technicalDebt.ratingGrid': '0.05,0.1,0.2,0.5'
};
...
window.SS.isUserAdmin = false;
Chrome
window.SS = {
hoursInDay: 8,
user: 'admin',
userName: 'Administrator',
userEmail: '',
lf: {
enableGravatar: true,
gravatarServerUrl: '
https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon'
},
updateCenterActive: true,
'sonar.technicalDebt.ratingGrid': '0.05,0.1,0.2,0.5'
};
...
window.SS.isUserAdmin = true;
I found this in the sonar.log,
2017.02.23 10:54:44 ERROR web[][o.s.s.a.RealmAuthenticator] Error during authentication
org.sonar.server.exceptions.UnauthorizedException: Fail to authenticate from external provider
at org.sonar.server.authentication.RealmAuthenticator.doAuthenticate(RealmAuthenticator.java:96) [sonar-server-6.1.jar:na]
at org.sonar.server.authentication.RealmAuthenticator.authenticate(RealmAuthenticator.java:83) [sonar-server-6.1.jar:na]
at org.sonar.server.authentication.CredentialsAuthenticator.authenticate(CredentialsAuthenticator.java:56) [sonar-server-6.1.jar:na]
at org.sonar.server.authentication.CredentialsAuthenticator.authenticate(CredentialsAuthenticator.java:45) [sonar-server-6.1.jar:na]
at org.sonar.server.authentication.ws.LoginAction.authenticate(LoginAction.java:91) [sonar-server-6.1.jar:na]
at org.sonar.server.authentication.ws.LoginAction.doFilter(LoginAction.java:76) [sonar-server-6.1.jar:na]
at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:126) [sonar-server-6.1.jar:na]
at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:95) [sonar-server-6.1.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:60) [sonar-server-6.1.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.sonar.server.platform.web.RoutesFilter.doFilter(RoutesFilter.java:55) [sonar-server-6.1.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:113) [sonar-server-6.1.jar:na]
at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:81) [sonar-server-6.1.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.32.jar:8.0.32]
at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:191) [logback-access-1.1.3.jar:na]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.32.jar:8.0.32]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.32.jar:8.0.32]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
sonar.properties shows these excerpts:
# LDAP Configuration
# General Configuration
##sonar.security.localUsers=admin,sonar4cic
##sonar.security.savePassword=false
sonar.security.realm=LDAP
ldap.url=ldaps://<hidden>
# LDAP User Configuration
ldap.user.baseDn=ou=People,o=<hidden>
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
# LDAP Group Configuration
##ldap.group.baseDn=ou=Groups,o=<hidden>
##ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))