I hacked on a CDI support branch a while ago: https://github.com/apache/shiro/tree/cdi-idea I was trying to figure out if there could be more shared code between Spring, Guice, and CDI. Not so much. But it might be a good starting point. (I'm pretty sure this was based off other community work, but I'd need to go dig up the specifics)
On Mon, Dec 11, 2017 at 6:43 AM, Simeó Reig <[email protected]> wrote: > Thanks for your time Rob, in the end I get an entity manager inside my > realm to connect with my JPA model. Maybe it wasn't the best solution but > I'm not seeing any drawback on it. And exact, this is the problem: Shiro > knows nothing about CDI,that was the problem > > Thanks again! > > Simeó Reig > > > > A 10-12-2017 15:35, Rob Young escrigué: > > Hi Simeo, > > I (finally!) took a look at this, sorry for the delay. I've never got > injection working in an authorizing realm. In our JSF/Shiro/JPA web > application, I had to write an authorizing realm for shiro. What we ended > up doing was using JNDI to retrieve a basic JDBC connection from the > container, and do a basic query on user attributes with it. > > I could be mistaken, but I don't think that shiro core knows anything > about CDI, and isn't managed by WELD. (If I am incorrect, I would love to > be corrected!) :) > > We had some fun getting the JNDI connection set up correctly in glassfish > - it's all wrapped up in a docker container. > > Here's a gist with some pseudo-java for what I'm talking about. > https://gist.github.com/bobbotron/c1d2282069a57b2b5b58541b6540de33 > > > On Fri, Dec 1, 2017 at 11:42 AM, Simeó Reig <[email protected]> > wrote: > >> Hi Brian, >> >> The real application should collect users from JPA, but I made this >> version without JPA and I simply inject a CDI that has info hardcoded on >> it, to do as simple as possible: >> >> >> public class JpaRealm *extends AuthorizingRealm* { >> >> @Inject >> private *BeanLogin* myBeanLogin; >> >> .. >> >> } >> >> public class *BeanLogin* implements Serializable { >> >> public User returnUserInfo(String userName) { >> >> User user; Role roleAdmin; >> >> roleAdmin = new Role("Role_Admin"); >> roleAdmin.addPermission("all"); >> >> user = new User(1, userName, "foobar", "Foo company"); >> user.addRol(roleAdmin); >> >> return user; >> >> } >> >> } >> >> >> I don't have a mock version of non CDI system but I could do it in a few >> hours. >> >> >> Thanks again >> >> >> A 01-12-2017 15:04, Brian Demers escrigué: >> >> I just took a quick look, so I very well might have missed something. but >> where are you dealing with the user's password? >> >> You mentioned you have a non-CDI version that works? can you point us to >> that too? >> >> On Fri, Dec 1, 2017 at 8:21 AM, Simeó Reig <[email protected]> >> wrote: >> >>> Hi all, >>> >>> has anybody been able to take a look on it? It's a minimal maven JSF2 >>> project to use CDI on authentification under shiro but I wasn't be able to >>> make it work. CDI is working fine but SimpleAuthenticationInfo it's always >>> raising up IncorrectCredentialsException despite credentials are Ok >>> >>> https://github.com/simeoreig/shiro-JPA >>> >>> Thanks again >>> >>> Simeó Reig >>> >>> >>> >>> A 29-11-2017 10:52, Simeó Reig escrigué: >>> >>> Thanks a lot! >>> >>> A 29-11-2017 05:01, Rob Young escrigué: >>> >>> Hi Simeo, >>> >>> I'm swamped with work but could take a look in a few days, sounds like >>> you're close! >>> >>> On Tuesday, November 28, 2017, Simeó Reig <[email protected]> >>> wrote: >>> >>>> Hi >>>> >>>> If someone can review it, I've just uploaded a minimal maven JSF 2 >>>> project on https://github.com/simeoreig/shiro-JPA >>>> >>>> CDI Injection is working but now SimpleAuthenticationInfo it's always >>>> raising up IncorrectCredentialsException despite credentials are Ok >>>> (without JPA is working well) >>>> >>>> Just test with user john, pass foobar >>>> >>>> >>>> Thanks a lot >>>> >>>> Simeó Reig >>>> >>>> >>>> >>>> A 28-11-2017 22:00, Simeó Reig escrigué: >>>> >>>> Thanks Brian I'm going to recheck it >>>> >>>> A 28-11-2017 20:31, Brian Demers escrigué: >>>> >>>> Are you sure you are injecting all of your components correctly? >>>> Sounds like that might be the issue >>>> >>>> On Tue, Nov 28, 2017 at 1:37 PM, Simeó Reig < >>>> [email protected]> wrote: >>>> >>>>> Dear alls, >>>>> >>>>> Is it possible to use a Inject a DAO reference inside a class >>>>> extending AuthorizingRealm ? >>>>> >>>>> I've followed https://stackoverflow.com/ques >>>>> tions/15605038/unable-to-inject-my-dao-in-a-custom-apache-sh >>>>> iro-authorizingrealm without success. JPA injection works but >>>>> SimpleAuthenticationInfo in doGetAuthenticationInfo method always return ' >>>>> token [org.apache.shiro.authc.UsernamePasswordToken - >>>>> john,rememberMe=false] did not match the expected credentials" >>>>> >>>>> Shiro 1.3.2 in a JSF application, shiro works without JPA as expected >>>>> >>>>> Thanks >>>>> >>>>> Simeó Reig >>>>> >>>>> >>>>> >>>> >>>> >>> >>> -- >>> Rob Young >>> [email protected] >>> >>> >>> >>> >>> >> > > > -- > Rob Young > [email protected] > > > >
