Brian: To what extend would you be ok with me adding extra methods to established interfaces?
Current example is that i need to be able to distinguish between what is saved on ThreadLocal when running "normally" and in OSGi. It seems the smallest change would be to make SubjectThreadState into an interface and allow the Subject class to either return its own SubjectThreadState, or maybe even build the bind method directly into the Subject. Its a fix that is quite small, but i am not sure about adding such functionality to Subject, as it currently only contains developer-focused methods, and next to none focused on the backing framework. On Thu, Apr 14, 2016 at 8:33 AM, Martin Nielsen <[email protected]> wrote: > Cristiano, i will see if i can find your work a little later on. Right now > my main concern is finding the "least impact" solution for circumventing > the initialization wiring and threadlocal functionality (Ironically, these > are some of the things that make Shiro so nice to use, and now i am working > on getting around them). > > The main problem i am having right now is that i must not bind anything to > a threadlocal, that will be exposed as a service (Considering what would > happen if the corresponding securitymanager bundle is suddenly stopped, > what about the service instance in the threadlocal?) > > Did you do any work along those lines? I would very much like to not > reinvent the wheel if someone else already did the work. > > Right now my thought is to expand the SubjectThreadState, letting the > subject itself define how it is stored, but i am very much open to other, > and potentially better, ideas:) > > More regards > -Martin > > On Wed, Apr 13, 2016 at 9:11 PM, Brian Demers <[email protected]> > wrote: > >> These have been merged to master and 1.2.x >> >> On Wed, Apr 13, 2016 at 10:26 AM, Andreas Kohn <[email protected]> >> wrote: >> >> > Brian, >> > >> > We needed[*] to get Shiro 1.2 building with JDK 8, these commits could >> be >> > helpful to pull into the main repository: >> > >> > >> > >> https://github.com/Collaborne/shiro/commit/e83d73f858bc48cbc7c7123fada099eff044aa43 >> > (SHIRO-516) >> > >> > >> > >> https://github.com/Collaborne/shiro/commit/631847d3a2754244ad0ab2f87bd581fe7b8e60f7 >> > >> > >> https://github.com/Collaborne/shiro/commit/831b90c9255ce81994accef5a94ddfa31a85d8cf >> > >> > >> https://github.com/Collaborne/shiro/commit/be75d27d9439585308ea48420a36d42b53fe7cb2 >> > (no issue/PR yet) >> > >> > Should I create a new issue for that, or would that only be relevant for >> > the mythical Shiro 2.x? >> > >> > Regards, >> > -- >> > Andreas >> > >> > [*] JDK 7 is EOL'd, so I simply didn't want to have to bother with that >> > anymore. >> > >> > On Sun, Apr 10, 2016 at 11:02 PM Brian Demers <[email protected]> >> > wrote: >> > >> > > It should, though use JDK 1.7, if you are not already >> > > >> > > -Brian >> > > >> > > > On Apr 10, 2016, at 7:43 AM, Martin Nielsen <[email protected]> >> wrote: >> > > > >> > > > Hi again. >> > > > >> > > > I have started ever so slowly, and i have run into the first issue: >> > > Compile >> > > > problems:D >> > > > >> > > > Either i am missing something, or i have hit the project at a time >> > where >> > > it >> > > > doesn't compile. The support/AspectJ project is failing to compile. >> > > > >> > > > Should the project just comple directly from the github repo? Or do >> i >> > > need >> > > > some special setup? >> > > > >> > > > If not, i guess i will just start spooling backwards until i hit a >> > commit >> > > > that compiles:D >> > > > >> > > >> On Thu, Apr 7, 2016 at 9:25 PM, Brian Demers < >> [email protected]> >> > > wrote: >> > > >> >> > > >> Martin, >> > > >> Understood, go for it. >> > > >> >> > > >>> On Thu, Apr 7, 2016 at 10:32 AM, Martin Nielsen <[email protected] >> > >> > > wrote: >> > > >>> >> > > >>> That is the problem, i don't think this will be a "small" change >> > > really. >> > > >> I >> > > >>> will be making small knicks in quite a few places. I am up for >> doing >> > > the >> > > >>> work, and i am up for modifying it and taking critique. I wouldn't >> > mind >> > > >>> helping to support it afterwards either. I just want to make sure >> i >> > > don't >> > > >>> get some answer like "OSGi is not a priority for us, please sod >> off" >> > :D >> > > >>> >> > > >>> On Thu, Apr 7, 2016 at 3:44 PM, Brian Demers < >> [email protected] >> > > >> > > >>> wrote: >> > > >>> >> > > >>>> +1 ( including Dan's comments) >> > > >>>> >> > > >>>> GitHub pull requests are now preferred. >> > > >>>> >> > > >>>>> On Thu, Apr 7, 2016 at 9:07 AM, Dan Dumont <[email protected]> >> > > wrote: >> > > >>>>> >> > > >>>>> I don't want to put words in the shiro committers mouths, but >> I'm >> > > >> sure >> > > >>>> they >> > > >>>>> would be happy to see the work. The best way I found to get >> > involved >> > > >>> in >> > > >>>>> Apache projects is to start making small, easy to review changes >> > that >> > > >>>> were >> > > >>>>> easy to explain. (With unit tests of course :) >> > > >>>>> >> > > >>>>> Eventually, the community extended a committer invite. >> > > >>>>> >> > > >>>>> Good luck! >> > > >>>>> I use shiro on karaf right now and would like to see some love >> for >> > > >> OSGi >> > > >>>> as >> > > >>>>> well. >> > > >>>>> >> > > >>>>> sent using my nexus 5x >> > > >>>>>> On Apr 7, 2016 7:29 AM, "Martin Nielsen" <[email protected]> >> > wrote: >> > > >>>>>> >> > > >>>>>> Hello Shiro developers. >> > > >>>>>> >> > > >>>>>> I have recently been using Shiro for all my security needs, >> and I >> > > >>> adore >> > > >>>>> the >> > > >>>>>> framework. Recently though, I have been moving more and more >> > > >> towards >> > > >>>> OSGi >> > > >>>>>> specification, and it feels like Shiro is a little lacking in >> that >> > > >>>> area. >> > > >>>>> It >> > > >>>>>> works well enough but it is quite static, and does not really >> > > >> handle >> > > >>>> the >> > > >>>>>> dynamic nature of OSGi. >> > > >>>>>> >> > > >>>>>> As far as I can see, all the wiring in Shiro on OSGi is one at >> > > >>>>>> initialization time, and remains static while the application >> is >> > > >>>> running. >> > > >>>>>> >> > > >>>>>> I think I have a pretty low impact way to create an OSGi based >> > > >>>>>> SecurityManager that would register Realms, SubjectDAO's, >> > > >>>> SessionManagers >> > > >>>>>> et cetera as services, allowing bundles to register their own >> > > >>>>>> sessionmanagers, cachemanagers, and more importantly realms, >> when >> > > >>> they >> > > >>>>>> start up. >> > > >>>>>> >> > > >>>>>> The result would be an OSGi based SecurityManager that does not >> > > >> start >> > > >>>> up >> > > >>>>>> statically, for example with an INI file, but uses the OSGi >> > service >> > > >>>>>> registry to get its resources at runtime. >> > > >>>>>> >> > > >>>>>> The overall plan is to create a few changes in Shiro Core and >> > Shiro >> > > >>>> Web, >> > > >>>>> so >> > > >>>>>> it is possible to define how the individual parts connects to >> each >> > > >>>> other. >> > > >>>>>> So, basically i want to change hardwired references to small >> > > >> adapter >> > > >>>>>> classes, that can be injected to change how the components >> finds >> > > >> each >> > > >>>>>> other. The existing SecurityManagers should of cause remain >> > > >>> unaffected >> > > >>>>> and >> > > >>>>>> there should be no change to the end user experience. >> > > >>>>>> I will also create an adapter, that can be used in place of the >> > > >>> static >> > > >>>>>> securitymanager when running OSGi. >> > > >>>>>> >> > > >>>>>> When that is done, I will add a number of modules to serve as >> > > >>> dedicated >> > > >>>>>> OSGi bundles, using hopefully 95& of the code from Core and >> Web, >> > so >> > > >>> the >> > > >>>>>> standard components can be started as separate bundles, and >> > > >> replaced >> > > >>> by >> > > >>>>>> custom implementations if necessary. >> > > >>>>>> >> > > >>>>>> My hope is that, when done, it will be possible to use a >> > > >>>> securitymanager >> > > >>>>>> that doesn't wire anything at startup, and can change at >> runtime, >> > > >> as >> > > >>>>>> bundles are started and stopped. >> > > >>>>>> >> > > >>>>>> I am very willing to put in the hours to make this happen, but >> it >> > > >>> would >> > > >>>>> be >> > > >>>>>> nice to know that this is something that the maintainers >> actaully >> > > >>> want, >> > > >>>>> so >> > > >>>>>> I don't end up with something that isn't desired. I also have >> not >> > > >>>> worked >> > > >>>>>> that much with the Web bundle, so I might have some questions >> down >> > > >>> the >> > > >>>>>> line. >> > > >>>>>> >> > > >>>>>> So: Is this something that that you would consider a pull >> request >> > > >>> for? >> > > >>>> Of >> > > >>>>>> cause i can't guarantee that it will work, but i am willing to >> > try, >> > > >>>>>> provided that i get some assurance that it is actually >> something >> > > >> you >> > > >>>> want >> > > >>>>>> in the project. >> > > >>>>>> >> > > >>>>>> Please let me know >> > > >>>>>> >> > > >>>>>> Martin Nielsen >> > > >>>>>> -Hopeful Apache Committer >> > > >>>>>> >> > > >>>>> >> > > >>>> >> > > >>> >> > > >> >> > > >> > >> > >
