NullPointerException in when searching for user to be added to Permission

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

問題

Bamboo is configured to use LDAP for user management.

Searching for user to be added to the Permission, will have a popup window error with the following message:

java.lang.NullPointerException
	at com.atlassian.bamboo.plugins.rest.permission.BasicPermissionResource.lambda$getAvailableUsers$1(BasicPermissionResource.java:103)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
	at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
	at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$222(StreamSpliterators.java:294)
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
	at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
	at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
	at com.atlassian.bamboo.plugins.rest.pagination.PaginationServiceImpl.getPageResponse(PaginationServiceImpl.java:76)
	at com.atlassian.bamboo.plugins.rest.pagination.PaginationServiceImpl.getPage(PaginationServiceImpl.java:36)
	at com.atlassian.bamboo.plugins.rest.permission.BasicPermissionResource.getAvailableUsers(BasicPermissionResource.java:104)
	at com.atlassian.bamboo.plugins.rest.permission.GlobalPermissionsResource.getAvailableUsers(GlobalPermissionsResource.java:143)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$TypeOutInvoker$1.invoke(DispatchProviderHelper.java:169)
	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83)

診断

環境

  • Bamboo version 6.2.1+

Diagnostic Steps

  • Check what is the username attribute configured in the file BAMBOO_HOME/xml-data/configuration/atlassian-user.xml , for example: 

            <ldap key="adRepository" name="AD Repository" cache="true">
                <host>localhost</host>
                <port>389</port>
    
                <securityPrincipal>uid=admin,ou=system</securityPrincipal>
                <securityCredential>secret</securityCredential>
                <baseUserNamespace>ou=Users,DC=example,DC=com</baseUserNamespace>
     
                <userSearchFilter>(objectClass=person)</userSearchFilter>
                <usernameAttribute>mail</usernameAttribute>
  • Run ldapsearch command to check if all the users have usernameAttribute, for example: 

    ldapsearch -h localhost -p 389 -b "ou=Users,dc=example,dc=com" -D "uid=admin,ou=system" -w "secret" \(\&\(objectClass=person\)\(\!\(mail=*\)\)\) 

    This command will return user entries that does not have mail attribute.

原因

The username attribute configured in Bamboo does not exist in all the LDAP users.

ソリューション

  • Make sure that all the LDAP user have the attribute that is configured to be used as username in Bamboo.
    OR
  • Include the usernameAttribute into the user search filter in the file atlassian-user.xml and restart Bamboo, for example: 

                <userSearchFilter>(&amp;(objectClass=person)(mail=*))</userSearchFilter>
                <usernameAttribute>mail</usernameAttribute>

 

 

最終更新日: 2017 年 10 月 19 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.