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]
