[ 
https://issues.apache.org/jira/browse/SOLR-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13883927#comment-13883927
 ] 

Per Steffensen commented on SOLR-4470:
--------------------------------------

bq. ...and this patch is HUGE

Yes it is, but a lot of it is on the testing part. Hopefully, I will have the 
time to help out at some point, but my customer is not as willing as he has 
been, allowing me to use time on getting patches all the way into Apache 
code-base. He (we) has realized along the way that it is not worth the effort - 
it is not going to get in anyway. I sincerely hope that he is wrong in the long 
run.

bq. Again, appreciate the input, looks like the issue is at least alive.

At least it wakes up from time to time, when someone new comes around and 
complains :-)

bq.  We write all our own JAAS LoginModules today

We do that too. For our SolrCloud based solutions we have made a LoginModule 
persisting its data in ZooKeeper. It is around anyway and has nice features 
about pushing changes in password etc to the realms in the web-container.

bq.  I can lock down the receiver side via configuration and standard Container 
plugins, but it's the sender side that we can do nothing about without some 
core code modification that would allow us to send whatever security artifacts 
downstream we deem appropriate

In order not to make this issue too "wide", I deliberately made it about "basic 
http auth" only. If you use SolrJ as the client the patch I provided allow for 
easy injection of the username/password sent to the Server-side by the SolrJ 
client. Basically the patch is about support in SolrJ clients to fetch (from 
the outside - config or stdin or whatever) security artifacts to use and then 
use them in outgoing requests. Since Solr-nodes use SolrJ for sending 
inter-Solr-node request this will make the feature available for 
inter-Solr-node requests, but at the same time the feature is also available 
for "clients" using SolrJ. If you use other kinds of clients you will need to 
deal with the credentials-sending from clients yourself.
The patch is also "prepared for" other kinds of security artifacts (cookeis, 
RSA certificates or whatever), so that they can be built into the established 
framework, but currently it only supports basic http auth out of the box - but 
also for SolrJ clients.

bq. Spring Web and Grizzly2

With respect to going away from the using all the nice features provided by 
web-containers and replace by other "frameworks" providing the same features, 
do not get me wrong. In principle I have nothing against that, when we just do 
not believe that we can do better ourselves. Use some framework (web-containers 
or Spring stuff or whatever) to deal with that stuff. And as long as we do 
that, and do not make it ourselves, I am not sure the argument about "Once Solr 
is a "real" application that owns and fully controls the HTTP layer, security 
will not be such a nightmare" holds. Either we do it ourselves and get "full 
control" or we do it by using some "framework", and claiming the the 
alternative framework (alternative to web-containers) provide more "control" 
than web-containers do, is not necessarily true. But do not get me wrong, I 
have nothing against using other frameworks than web-containers, I am just not 
convinced that it is worth the effort. Web-containers in general do a great 
job, and most of them have had years and years to mature.

[~zoomieia1980], if you really care about security in SolrCloud, you might also 
want to take a peek at SOLR-4580. Depending on how much you expose ZooKeeper, 
how afraid you are of admins etc accidentally messing up ZK data etc, this 
might also be relevant for you.

> Support for basic http auth in internal solr requests
> -----------------------------------------------------
>
>                 Key: SOLR-4470
>                 URL: https://issues.apache.org/jira/browse/SOLR-4470
>             Project: Solr
>          Issue Type: New Feature
>          Components: clients - java, multicore, replication (java), SolrCloud
>    Affects Versions: 4.0
>            Reporter: Per Steffensen
>            Assignee: Jan Høydahl
>              Labels: authentication, https, solrclient, solrcloud, ssl
>             Fix For: 4.7
>
>         Attachments: SOLR-4470.patch, SOLR-4470.patch, 
> SOLR-4470_branch_4x_r1452629.patch, SOLR-4470_branch_4x_r1452629.patch, 
> SOLR-4470_branch_4x_r1454444.patch
>
>
> We want to protect any HTTP-resource (url). We want to require credentials no 
> matter what kind of HTTP-request you make to a Solr-node.
> It can faily easy be acheived as described on 
> http://wiki.apache.org/solr/SolrSecurity. This problem is that Solr-nodes 
> also make "internal" request to other Solr-nodes, and for it to work 
> credentials need to be provided here also.
> Ideally we would like to "forward" credentials from a particular request to 
> all the "internal" sub-requests it triggers. E.g. for search and update 
> request.
> But there are also "internal" requests
> * that only indirectly/asynchronously triggered from "outside" requests (e.g. 
> shard creation/deletion/etc based on calls to the "Collection API")
> * that do not in any way have relation to an "outside" "super"-request (e.g. 
> replica synching stuff)
> We would like to aim at a solution where "original" credentials are 
> "forwarded" when a request directly/synchronously trigger a subrequest, and 
> fallback to a configured "internal credentials" for the 
> asynchronous/non-rooted requests.
> In our solution we would aim at only supporting basic http auth, but we would 
> like to make a "framework" around it, so that not to much refactoring is 
> needed if you later want to make support for other kinds of auth (e.g. digest)
> We will work at a solution but create this JIRA issue early in order to get 
> input/comments from the community as early as possible.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to