Kevin & Noble,

I've manually verified the fix for SOLR-8000, but not yet for SOLR-8004.

I reproduced the initial problem with reloading security.json after
restarting both Solr and ZooKeeper.   I verified using zkcli.sh that
ZooKeeper does retain the changes to the file after using
/solr/admin/authorization, and that therefore the problem was Solr.

After building solr-5.3.1-SNAPSHOT.tgz with ant package (because I don't
know how to give parameters to ant server), I expanded it, copied in the
core data, and then started it.   I was prompted for a password, and it let
me in once the password was given.

I'll probably get to SOLR-8004 shortly, since I have both environments
built and working.

It also occurs to me that it might be better to forbid all permissions and
grant specific permissions to specific roles.   Is there a comprehensive
list of the permissions available?


On Tue, Sep 8, 2015 at 1:07 PM, Kevin Lee <kgle...@yahoo.com.invalid> wrote:

> Thanks Dan!  Please let us know what you find.  I’m interested to know if
> this is an issue with anyone else’s setup or if I have an issue in my local
> configuration that is still preventing it to work on start/restart.
>
> - Kevin
>
> > On Sep 5, 2015, at 8:45 AM, Dan Davis <dansm...@gmail.com> wrote:
> >
> > Kevin & Noble,
> >
> > I'll take it on to test this.   I've built from source before, and I've
> > wanted this authorization capability for awhile.
> >
> > On Fri, Sep 4, 2015 at 9:59 AM, Kevin Lee <kgle...@yahoo.com.invalid>
> wrote:
> >
> >> Noble,
> >>
> >> Does SOLR-8000 need to be re-opened?  Has anyone else been able to test
> >> the restart fix?
> >>
> >> At startup, these are the log messages that say there is no security
> >> configuration and the plugins aren’t being used even though
> security.json
> >> is in Zookeeper:
> >> 2015-09-04 08:06:21.205 INFO  (main) [   ] o.a.s.c.CoreContainer
> Security
> >> conf doesn't exist. Skipping setup for authorization module.
> >> 2015-09-04 08:06:21.205 INFO  (main) [   ] o.a.s.c.CoreContainer No
> >> authentication plugin used.
> >>
> >> Thanks,
> >> Kevin
> >>
> >>> On Sep 4, 2015, at 5:47 AM, Noble Paul <noble.p...@gmail.com> wrote:
> >>>
> >>> There are no download links for 5.3.x branch  till we do a bug fix
> >> release
> >>>
> >>> If you wish to download the trunk nightly (which is not same as 5.3.0)
> >>> check here
> >>
> https://builds.apache.org/job/Solr-Artifacts-trunk/lastSuccessfulBuild/artifact/solr/package/
> >>>
> >>> If you wish to get the binaries for 5.3 branch you will have to make it
> >>> (you will need to install svn and ant)
> >>>
> >>> Here are the steps
> >>>
> >>> svn checkout
> >> http://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_5_3/
> >>> cd lucene_solr_5_3/solr
> >>> ant server
> >>>
> >>>
> >>>
> >>> On Fri, Sep 4, 2015 at 4:11 PM, davidphilip cherian
> >>> <davidphilipcher...@gmail.com> wrote:
> >>>> Hi Kevin/Noble,
> >>>>
> >>>> What is the download link to take the latest? What are the steps to
> >> compile
> >>>> it, test and use?
> >>>> We also have a use case to have this feature in solr too. Therefore,
> >> wanted
> >>>> to test and above info would help a lot to get started.
> >>>>
> >>>> Thanks.
> >>>>
> >>>>
> >>>> On Fri, Sep 4, 2015 at 1:45 PM, Kevin Lee <kgle...@yahoo.com.invalid>
> >> wrote:
> >>>>
> >>>>> Thanks, I downloaded the source and compiled it and replaced the jar
> >> file
> >>>>> in the dist and solr-webapp’s WEB-INF/lib directory.  It does seem to
> >> be
> >>>>> protecting the Collections API reload command now as long as I upload
> >> the
> >>>>> security.json after startup of the Solr instances.  If I shutdown and
> >> bring
> >>>>> the instances back up, the security is no longer in place and I have
> to
> >>>>> upload the security.json again for it to take effect.
> >>>>>
> >>>>> - Kevin
> >>>>>
> >>>>>> On Sep 3, 2015, at 10:29 PM, Noble Paul <noble.p...@gmail.com>
> wrote:
> >>>>>>
> >>>>>> Both these are committed. If you could test with the latest 5.3
> branch
> >>>>>> it would be helpful
> >>>>>>
> >>>>>> On Wed, Sep 2, 2015 at 5:11 PM, Noble Paul <noble.p...@gmail.com>
> >> wrote:
> >>>>>>> I opened a ticket for the same
> >>>>>>> https://issues.apache.org/jira/browse/SOLR-8004
> >>>>>>>
> >>>>>>> On Wed, Sep 2, 2015 at 1:36 PM, Kevin Lee
> <kgle...@yahoo.com.invalid
> >>>
> >>>>> wrote:
> >>>>>>>> I’ve found that completely exiting Chrome or Firefox and opening
> it
> >>>>> back up re-prompts for credentials when they are required.  It was
> >>>>> re-prompting with the /browse path where authentication was working
> >> each
> >>>>> time I completely exited and started the browser again, however it
> >> won’t
> >>>>> re-prompt unless you exit completely and close all running instances
> >> so I
> >>>>> closed all instances each time to test.
> >>>>>>>>
> >>>>>>>> However, to make sure I ran it via the command line via curl as
> >>>>> suggested and it still does not give any authentication error when
> >> trying
> >>>>> to issue the command via curl.  I get a success response from all the
> >> Solr
> >>>>> instances that the reload was successful.
> >>>>>>>>
> >>>>>>>> Not sure why the pre-canned permissions aren’t working, but the
> one
> >> to
> >>>>> the request handler at the /browse path is.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On Sep 1, 2015, at 11:03 PM, Noble Paul <noble.p...@gmail.com>
> >> wrote:
> >>>>>>>>>
> >>>>>>>>> " However, after uploading the new security.json and restarting
> the
> >>>>>>>>> web browser,"
> >>>>>>>>>
> >>>>>>>>> The browser remembers your login , So it is unlikely to prompt
> for
> >> the
> >>>>>>>>> credentials again.
> >>>>>>>>>
> >>>>>>>>> Why don't you try the RELOAD operation using command line (curl)
> ?
> >>>>>>>>>
> >>>>>>>>> On Tue, Sep 1, 2015 at 10:31 PM, Kevin Lee
> >> <kgle...@yahoo.com.invalid>
> >>>>> wrote:
> >>>>>>>>>> The restart issues aside, I’m trying to lockdown usage of the
> >>>>> Collections API, but that also does not seem to be working either.
> >>>>>>>>>>
> >>>>>>>>>> Here is my security.json.  I’m using the “collection-admin-edit”
> >>>>> permission and assigning it to the “adminRole”.  However, after
> >> uploading
> >>>>> the new security.json and restarting the web browser, it doesn’t seem
> >> to be
> >>>>> requiring credentials when calling the RELOAD action on the
> Collections
> >>>>> API.  The only thing that seems to work is the custom permission
> >> “browse”
> >>>>> which is requiring authentication before allowing me to pull up the
> >> page.
> >>>>> Am I using the permissions correctly for the
> >> RuleBasedAuthorizationPlugin?
> >>>>>>>>>>
> >>>>>>>>>> {
> >>>>>>>>>>     "authentication":{
> >>>>>>>>>>        "class":"solr.BasicAuthPlugin",
> >>>>>>>>>>        "credentials": {
> >>>>>>>>>>                     "admin”:”<pass> <salt>",
> >>>>>>>>>>                     "user": ”<pass> <salt>"
> >>>>>>>>>>             }
> >>>>>>>>>>     },
> >>>>>>>>>>     "authorization":{
> >>>>>>>>>>        "class":"solr.RuleBasedAuthorizationPlugin",
> >>>>>>>>>>        "permissions": [
> >>>>>>>>>>                     {
> >>>>>>>>>>                             "name":"security-edit",
> >>>>>>>>>>                             "role":"adminRole"
> >>>>>>>>>>                     },
> >>>>>>>>>>                     {
> >>>>>>>>>>                             "name":"collection-admin-edit”,
> >>>>>>>>>>                             "role":"adminRole"
> >>>>>>>>>>                     },
> >>>>>>>>>>                     {
> >>>>>>>>>>                             "name":"browse",
> >>>>>>>>>>                             "collection": "inventory",
> >>>>>>>>>>                             "path": "/browse",
> >>>>>>>>>>                             "role":"browseRole"
> >>>>>>>>>>                     }
> >>>>>>>>>>             ],
> >>>>>>>>>>        "user-role": {
> >>>>>>>>>>                     "admin": [
> >>>>>>>>>>                             "adminRole",
> >>>>>>>>>>                             "browseRole"
> >>>>>>>>>>                     ],
> >>>>>>>>>>                     "user": [
> >>>>>>>>>>                             "browseRole"
> >>>>>>>>>>                     ]
> >>>>>>>>>>             }
> >>>>>>>>>>     }
> >>>>>>>>>> }
> >>>>>>>>>>
> >>>>>>>>>> Also tried adding the permission using the Authorization API,
> but
> >> no
> >>>>> effect, still isn’t protecting the Collections API from being invoked
> >>>>> without a username password.  I do see in the Solr logs that it sees
> >> the
> >>>>> updates because it outputs the messages “Updating /security.json …”,
> >>>>> “Security node changed”, “Initializing authorization plugin:
> >>>>> solr.RuleBasedAuthorizationPlugin” and “Authentication plugin class
> >>>>> obtained from ZK: solr.BasicAuthPlugin”.
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>> Kevin
> >>>>>>>>>>
> >>>>>>>>>>> On Sep 1, 2015, at 12:31 AM, Noble Paul <noble.p...@gmail.com>
> >>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>> I'm investigating why restarts or first time start does not
> read
> >> the
> >>>>>>>>>>> security.json
> >>>>>>>>>>>
> >>>>>>>>>>> On Tue, Sep 1, 2015 at 1:00 PM, Noble Paul <
> noble.p...@gmail.com
> >>>
> >>>>> wrote:
> >>>>>>>>>>>> I removed that statement
> >>>>>>>>>>>>
> >>>>>>>>>>>> "If activating the authorization plugin doesn't protect the
> >> admin
> >>>>> ui,
> >>>>>>>>>>>> how does one protect access to it?"
> >>>>>>>>>>>>
> >>>>>>>>>>>> One does not need to protect the admin UI. You only need to
> >> protect
> >>>>>>>>>>>> the relevant API calls . I mean it's OK to not protect the CSS
> >> and
> >>>>>>>>>>>> HTML stuff.  But if you perform an action to create a core or
> >> do a
> >>>>>>>>>>>> query through admin UI , it automatically will prompt you for
> >>>>>>>>>>>> credentials (if those APIs are protected)
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Tue, Sep 1, 2015 at 12:41 PM, Kevin Lee
> >>>>> <kgle...@yahoo.com.invalid> wrote:
> >>>>>>>>>>>>> Thanks for the clarification!
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> So is the wiki page incorrect at
> >>>>>>>>>>>>>
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/solr/Basic+Authentication+Plugin
> >>>>> which says that the admin ui will require authentication once the
> >>>>> authorization plugin is activated?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> "An authorization plugin is also available to configure Solr
> >> with
> >>>>> permissions to perform various activities in the system. Once
> >> activated,
> >>>>> access to the Solr Admin UI and all requests will need to be
> >> authenticated
> >>>>> and users will be required to have the proper authorization for all
> >>>>> requests, including using the Admin UI and making any API calls."
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> If activating the authorization plugin doesn't protect the
> >> admin
> >>>>> ui, how does one protect access to it?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Also, the issue I'm having is not just at restart.  According
> >> to
> >>>>> the docs security.json should be uploaded to Zookeeper before
> starting
> >> any
> >>>>> of the Solr instances.  However, I tried to upload security.json
> before
> >>>>> starting any of the Solr instances, but it would not pick up the
> >> security
> >>>>> config until after the Solr instances are already running and then
> >>>>> uploading the security.json again.  I can see in the logs at startup
> >> that
> >>>>> the Solr instances don't see any plugin enabled even though
> >> security.json
> >>>>> is already in zookeeper and then after they are started and the
> >>>>> security.json is uploaded again I see it reconfigure to use the
> plugin.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>> Kevin
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On Aug 31, 2015, at 11:22 PM, Noble Paul <
> >> noble.p...@gmail.com>
> >>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Admin UI is not protected by any of these permissions. Only
> if
> >>>>> you try
> >>>>>>>>>>>>>> to perform a protected operation , it asks for a password.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I'll investigate the restart problem and report my  findings
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Tue, Sep 1, 2015 at 3:10 AM, Kevin Lee
> >>>>> <kgle...@yahoo.com.invalid> wrote:
> >>>>>>>>>>>>>>> Anyone else running into any issues trying to get the
> >>>>> authentication and authorization plugins in 5.3 working?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Aug 29, 2015, at 2:30 AM, Kevin Lee
> >>>>> <kgle...@yahoo.com.INVALID> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Hi,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> I’m trying to use the new basic auth plugin for Solr 5.3
> and
> >>>>> it doesn’t seem to be working quite right.  Not sure if I’m missing
> >> steps
> >>>>> or there is a bug.  I am able to get it to protect access to a URL
> >> under a
> >>>>> collection, but am unable to get it to secure access to the Admin UI.
> >> In
> >>>>> addition, after stopping the Solr and Zookeeper instances, the
> >>>>> security.json is still in Zookeeper, however Solr is allowing access
> to
> >>>>> everything again like the security configuration isn’t in place.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Contents of security.json taken from wiki page, but edited
> >> to
> >>>>> produce valid JSON.  Had to move comma after 3rd from last “}” up to
> >> just
> >>>>> after the last “]”.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> "authentication":{
> >>>>>>>>>>>>>>>> "class":"solr.BasicAuthPlugin",
> >>>>>>>>>>>>>>>>
> >>>>> "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0=
> >>>>> Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
> >>>>>>>>>>>>>>>> },
> >>>>>>>>>>>>>>>> "authorization":{
> >>>>>>>>>>>>>>>> "class":"solr.RuleBasedAuthorizationPlugin",
> >>>>>>>>>>>>>>>> "permissions":[{"name":"security-edit",
> >>>>>>>>>>>>>>>> "role":"admin"}],
> >>>>>>>>>>>>>>>> "user-role":{"solr":"admin"}
> >>>>>>>>>>>>>>>> }}
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Here are the steps I followed:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Upload security.json to zookeeper
> >>>>>>>>>>>>>>>> ./zkcli.sh -z localhost:2181,localhost:2182,localhost:2183
> >>>>> -cmd putfile /security.json ~/solr/security.json
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Use zkCli.sh from Zookeeper to ensure the security.json is
> >> in
> >>>>> Zookeeper at /security.json.  It is there and looks like what was
> >>>>> originally uploaded.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Start Solr Instances
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Attempt to create a permission, however get the following
> >>>>> error:
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> "responseHeader":{
> >>>>>>>>>>>>>>>> "status":400,
> >>>>>>>>>>>>>>>> "QTime":0},
> >>>>>>>>>>>>>>>> "error":{
> >>>>>>>>>>>>>>>> "msg":"No authorization plugin configured",
> >>>>>>>>>>>>>>>> "code":400}}
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Upload security.json again.
> >>>>>>>>>>>>>>>> ./zkcli.sh -z localhost:2181,localhost:2182,localhost:2183
> >>>>> -cmd putfile /security.json ~/solr/security.json
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Issue the following to try to create the permission again
> >> and
> >>>>> this time it’s successful.
> >>>>>>>>>>>>>>>> // Create a permission for mysearch endpoint
> >>>>>>>>>>>>>>>>     curl --user solr:SolrRocks -H
> >>>>> 'Content-type:application/json' -d '{"set-permission":
> >>>>> {"name":"mycollection-search","collection":
> >>>>> “mycollection","path":”/mysearch","role": "search-user"}}'
> >>>>> http://localhost:8983/solr/admin/authorization
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> "responseHeader":{
> >>>>>>>>>>>>>>>> "status":0,
> >>>>>>>>>>>>>>>> "QTime":7}}
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Issue the following commands to add users
> >>>>>>>>>>>>>>>> curl --user solr:SolrRocks
> >>>>> http://localhost:8983/solr/admin/authentication -H
> >>>>> 'Content-type:application/json' -d '{"set-user": {"admin" :
> “password"
> >> }}’
> >>>>>>>>>>>>>>>> curl --user solr:SolrRocks
> >>>>> http://localhost:8983/solr/admin/authentication -H
> >>>>> 'Content-type:application/json' -d '{"set-user": {"user" : “password"
> >> }}'
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Issue the following command to add permission to users
> >>>>>>>>>>>>>>>> curl -u solr:SolrRocks -H 'Content-type:application/json'
> -d
> >>>>> '{ "set-user-role" : {"admin": ["search-user", "admin"]}}'
> >>>>> http://localhost:8983/solr/admin/authorization
> >>>>>>>>>>>>>>>> curl -u solr:SolrRocks -H 'Content-type:application/json'
> -d
> >>>>> '{ "set-user-role" : {"user": ["search-user"]}}'
> >>>>> http://localhost:8983/solr/admin/authorization
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> After executing the above, access to /mysearch is
> protected
> >>>>> until I restart the Solr and Zookeeper instances.  However, the admin
> >> UI is
> >>>>> never protected like the Wiki page says it should be once activated.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/solr/Rule-Based+Authorization+Plugin
> >>>>> <
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/solr/Rule-Based+Authorization+Plugin
> >>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Why does the authentication and authorization plugin not
> >> stay
> >>>>> activated after restart and why is the Admin UI never protected?  Am
> I
> >>>>> missing any steps?
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>>>>> Kevin
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> --
> >>>>>>>>>>>>>> -----------------------------------------------------
> >>>>>>>>>>>>>> Noble Paul
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> --
> >>>>>>>>>>>> -----------------------------------------------------
> >>>>>>>>>>>> Noble Paul
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>> -----------------------------------------------------
> >>>>>>>>>>> Noble Paul
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> -----------------------------------------------------
> >>>>>>>>> Noble Paul
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> -----------------------------------------------------
> >>>>>>> Noble Paul
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> -----------------------------------------------------
> >>>>>> Noble Paul
> >>>>>
> >>>>>
> >>>
> >>>
> >>>
> >>> --
> >>> -----------------------------------------------------
> >>> Noble Paul
> >>
> >>
>
>

Reply via email to