See Thread at: http://www.techienuggets.com/Detail?tx=21643 Posted on behalf of
a User
I am having the same problem. were you able to solve it? thanks a lot.
In Response To:
Hi,
I have a JBoss 4.2.2.GA WebService application, where the WebServices should be
secured.
So I wrote a custom LoginModule for JBoss 4.2.2.GA which extends the
org.jboss.security.auth.spi.UsernamePasswordLoginModule. I defined an
<application-policy> in the login-config.xml and I use the @SecurityDomain
annotation for the secured @WebService beans
So far so good: My LoginModule is called correctly.
Inside the LoginModule I want to call a local @Stateless bean which provides
methods to retrieve the user/roles via Hibernate from the database.
But how to access this bean?
I tried the @EJB annotation => no success
I tried a lookup via JNDI => no success (NameNotFoundException)
MyLoginModule:
| public class MyLoginModule extends UsernamePasswordLoginModule
| {
| private MyAuthenticationService myAuthenticationService;
|
| @Override
| public void initialize(Subject subject, CallbackHandler
callbackHandler, Map sharedState, Map options)
| {
| super.initialize(subject, callbackHandler, sharedState,
options);
| try {
| Context jndiContext = new InitialContext();
| this.myAuthenticationService =
(MyAuthenticationService)
jndiContext.lookup("java:comp/env/ejb/MyAuthenticationServiceImpl"); // does
not work (ejb not bound)
| // does not work: I tried all name combinations
| //
jndiContext.lookup("java:comp.ejb3/env/ejb/MyAuthenticationServiceImpl") =>
does not work (ejb not bound)
| // jndiContext.lookup("ejb/MyAuthenticationServiceImpl") =>
does not work (ejb not bound)
| // jndiContext.lookup("MyAuthenticationServiceImpl") =>
does not work (MyAuthenticationServiceImpl not bound)
| }
| catch (NamingException ex) {
| // TODO Auto-generated catch block
| ex.printStackTrace();
| }
| }
|
| @Override
| protected Principal createIdentity(String username) throws Exception
| {
| MyUser user =
this.myAuthenticationService.retrieveUserByLoginName(username);
| return user;
| }
|
| @Override
| protected String getUsersPassword() throws LoginException
| {
| MyUser myUser = (MyUser) this.getIdentity();
| return myUser.getPassword();
| }
|
| @Override
| protected Group[] getRoleSets() throws LoginException
| {
| Group roles = new SimpleGroup("Roles"); // "Roles" is the
expected GroupName for the roles
|
| for (Principal role : ((MyUser) this.getIdentity()).getRoles())
{
| roles.addMember(role);
| }
|
| return new Group[] { roles };
| }
|
| @EJB // has no effect
| public void setMyAuthenticationService(MyAuthenticationService
myAuthenticationService)
| {
| this.myAuthenticationService = myAuthenticationService;
| }
|
| }
|
|
MyAuthenticationServiceImpl:
| @Stateless
| public class MyAuthenticationServiceImpl implements MyAuthenticationService
| {
|
| // ...
|
| public MyUser retrieveUserByLoginName(String loginName) throws
LoginException
| {
| // here the DAO is called which uses the EntityManager
| }
|
| // ...
|
| }
|
MyAuthenticationService:
| public interface JaasService
| {
| // ...
| public MyUser retrieveUserByLoginName(String loginName) throws
LoginException;
| // ...
| }
|
What is wrong?
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user