Maybe I can request an enhancement on tomcat dev list for JAASRealm
I made some tests and it is really simple to pass jaas configuration file (using com.sun.security.auth.login.ConfigFile or implementing javax.security. auth.login <*0>.Configuration ) to LoginContext

LazyRealm is enough for me

the DelegateRealm will be a great out-of-the-box feature for TomEE !

maybe be a "SimpleDelegateRealm" that provides a "magic" mapping for the authenticate(username,password) will be more "demo"/"tutorial" effective

I saw that Tomcat JAASReam uses this trick
provide a method
List<Object> authenticate(String username, String password)

Realm configuration defines which of these objects are to be treated as "user" or as "role" using their class name

thanks
- Enrico

Il 23/08/2012 13:34, Romain Manni-Bucau ha scritto:
right, if you have a single application in the tomcat that's not an issue
otherwise it can be

*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.com*




2012/8/23 Enrico Olivelli <[email protected]>

I made same tests
Tomcat JAASReam creates a LoginContext in this way

//JAASRealm.java at line 372 on Tomcat trunk
loginContext = new LoginContext(appName, callbackHandler);

this constructor uses the JVM system wide JAAS configuration (default JAAS
Configuration)
so if you want to use your own LoginModule you have to modify Tomcat
global configuration....





Il 23/08/2012 11:40, Romain Manni-Bucau ha scritto:

i don't get it, you can define your LoginModule in the webapp i think, you

even have the useContextClassLoader parameter


*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.**com<http://rmannibucau.wordpress.com>
*




2012/8/23 Enrico Olivelli <[email protected]>

  Yes, the problem in Tomcat JAAS Realm is that you have to bundle your
LoginModule with the container
It would be very nice to let the app provide a LoginModule

do not drop LazyRealm, it fills a gap in Tomcat Realm standard
implementations (what about giving it, without CDI, to Tomcat directly?)

I can't understand why JavaEE specs does not cover this common case
I always developed Software as a Service apps, I could never use
Container
Managed security !


Il 23/08/2012 09:58, Romain Manni-Bucau ha scritto:

  hmm thinking a bit more, what about JAAS? it already works out of the
box
and you are not tomcat dependent in the java files

*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.****com<http://rmannibucau.**
wordpress.com <http://rmannibucau.wordpress.com>>
*




2012/8/23 Enrico Olivelli <[email protected]>

   I love it

remember that Tomcat wants a "GenericPrincipal" not a simple Principal
so application code have to be proxyed according to this need

My goal is that the app only needs to provide an EJB or CDI Bean with a
"authenticate" method which takes username/password and answers with
the
list of roles of the user

with your solution I will provide a bean with such a method
Principal authenticate(String username, String password)
that will be mapped to the Tomcat Realm authenticate(username,****

password)

    method
some "magic" needs to be done to map application provided Principal
with
the GenericPrincipal of Tomcat and the roles list
any idea ?


- Enrico


Il 23/08/2012 09:27, Romain Manni-Bucau ha scritto:

   hmm that's another need.

Here how i see things:
1) the LazyRealm manage the classloader stuff
2) another realm (DelegatorRealm?) does the same using bean matching
(almost) signatures of realm using java types (java == not tomcat) and
uses
reflection to invoke the delegate

wdyt?

*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.******com<http://rmannibucau.**
wordpress.com 
<http://rmannibucau.wordpress.**com<http://rmannibucau.wordpress.com>
*




2012/8/23 Enrico Olivelli <[email protected]>

    Because realmClass needs to be a implementation of

  org.apache.catalina.Realm
and so in my app I will always need to add a compile time dep on
tomcat
in
my app
I would like not to have any compile time dep neither on Tomcat nor
on
OpenEJB/TomEE if possibile


Il 23/08/2012 08:48, Romain Manni-Bucau ha scritto:

    Why is there a dep? That's just xml

  Le 23 août 2012 07:55, "Enrico Olivelli" <[email protected]> a
écrit
:

     Thank you

   Your impl is great!

But with this LazyRealm the app needs to depend compile-time from
tomcat-catalina "realm" interface (even if it can be created with
CDI,
so I
think that in this way devs can lookup EJBs)
I think it should be more powerful to provide a Realm that could
call
directly one business method inside the app (as the EJB example or
the
EL
example)
the EL example is very powerfull, because devs who use JSF often
declare
<commandButton action="#{usermanager.login(..**********....)" >




but I think that an EJB stub would be enough

maybe it would be useful to let the app provide a implementation of
JASS
LoginModule or some other "standard" way to authenticate the user
(without
deploying it in the container, that is sometimes out of the
possibilities
of the dev, IT rules!)

another idea
you can add a wrapper to the application "realm" in LazyRealm to
adapt
it
to the Realm interface, I think the only useful method is
authenticate(username,**********password) method as the example I

sent,

Tomcat


wants it to return a Tomcat specific Principal impl that contains
the
roles
list

Thanks
- Enrico


Il 22/08/2012 21:39, Romain Manni-Bucau ha scritto:

     PS: the realm should be able to use cdi, simply add cdi="true"
to
the

   realm

definition (that's not the default)

*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.**********com<
http://rmannibucau.
**
wordpress.com <http://rmannibucau.wordpress.******com<
http://rmannibucau.**wordpress**.com <http://wordpress.com><
http://rmannibucau.**wordpress.com<http://rmannibucau.wordpress.com>
*




2012/8/22 Romain Manni-Bucau <[email protected]>

      already looked it several times and the IDE was opened ;)

    *Romain Manni-Bucau*

  *Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.**********com<
http://rmannibucau.**
wordpress.com <http://rmannibucau.wordpress.******com<
http://rmannibucau.**wordpress**.com <http://wordpress.com><
http://rmannibucau.**wordpress.com<http://rmannibucau.wordpress.com>
*




2012/8/22 Thiago Veronezi <[email protected]>

      Dude, you are incredibly fast!!! :O)

    On Wed, Aug 22, 2012 at 2:21 PM, Romain Manni-Bucau

  <[email protected]>wrote:
      
https://issues.apache.org/**********jira/browse/TOMEE-400<https://issues.apache.org/********jira/browse/TOMEE-400>
<http**s://issues.apache.org/********jira/browse/TOMEE-400<https://issues.apache.org/******jira/browse/TOMEE-400>
<https:**//issues.apache.org/******jira/**browse/TOMEE-400<http://issues.apache.org/****jira/**browse/TOMEE-400>
<htt**ps://issues.apache.org/******jira/browse/TOMEE-400<https://issues.apache.org/****jira/browse/TOMEE-400>
<https://**issues.apache.org/******jira/**browse/TOMEE-400<http://issues.apache.org/****jira/**browse/TOMEE-400>
<htt**p://issues.apache.org/**jira/****browse/TOMEE-400<http://issues.apache.org/**jira/**browse/TOMEE-400>
<https**://issues.apache.org/****jira/**browse/TOMEE-400<http://issues.apache.org/**jira/**browse/TOMEE-400>
<https**://issues.apache.org/**jira/**browse/TOMEE-400<https://issues.apache.org/**jira/browse/TOMEE-400>
<https://**issues.apache.org/******jira/browse/**TOMEE-400<http://issues.apache.org/****jira/browse/**TOMEE-400>
<htt**p://issues.apache.org/**jira/**browse/**TOMEE-400<http://issues.apache.org/**jira/browse/**TOMEE-400>
<http:**//issues.apache.org/**jira/**browse/**TOMEE-400<http://issues.apache.org/jira/**browse/**TOMEE-400>
<http**://issues.apache.org/jira/**browse/**TOMEE-400<http://issues.apache.org/jira/browse/**TOMEE-400>
<https:**//issues.apache.org/****jira/**browse/TOMEE-400<http://issues.apache.org/**jira/**browse/TOMEE-400>
<http:**//issues.apache.org/jira/****browse/TOMEE-400<http://issues.apache.org/jira/**browse/TOMEE-400>
  
<https:**//issues.apache.org/**jira/**browse/TOMEE-400<http://issues.apache.org/jira/**browse/TOMEE-400>
<https:**//issues.apache.org/jira/**browse/TOMEE-400<https://issues.apache.org/jira/browse/TOMEE-400>
*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.**********com<
http://rmannibucau.
**
wordpress.com <http://rmannibucau.wordpress.******com<
http://rmannibucau.**wordpress**.com <http://wordpress.com><
http://rmannibucau.**wordpress.com<http://rmannibucau.wordpress.com>
*




2012/8/22 Enrico Olivelli <[email protected]>

      Il 22/08/2012 19:29, Romain Manni-Bucau ha scritto:

        hmm, the point is you tomcat creates the realm before
the
app

  is
     started

   (== the webapp classloader is not available) so you have to
put

your

    realm

  in the container
       it is exactly the reason for I'm asking you to put this
kind

  of
    support

  in
     TomEE, because you cannot deploy a "Realm" implementation
directly

   in

     your

      own application

   My trick is just to let the developer of the app bundle in
its

own
app

     the

      only "logic" that implements the real autentication,

leaving the

      container

      to "manage" security

   in order to lookup beans you have to make a JNDI lookup only
for

every
call to "autenticate", so the realm actually doesn't need to
have

     access

   to

     the application context before initialization


       FYI you can use the tomee maven plugin:
                  <plugin>

                    <groupId>org.apache.openejb.********
****maven</groupId>
                   <artifactId>tomee-maven-************
plugin</artifactId>
                   <version>1.0.0-SNAPSHOT</*******
*****version>

                   <configuration>
                     <libs>
                       <lib>examples:EJBRealm:1.0-*********
***SNAPSHOT</lib>


                     </libs>
                   </configuration>
                 </plugin>

I don't know if tomcat already have a kind of lazy realm
instantiator

     but

   we could add one in tomee to manage such cases

    *Romain Manni-Bucau*

  *Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.************com<

     http://rmannibucau.wordpress.**********com <

   http://rmannibucau.wordpress.********com<
http://rmannibucau.**

wordpress.com <http://rmannibucau.wordpress.****com<
http://rmannibucau.**wordpress.com<http://rmannibucau.wordpress.com>
*



  2012/8/22 Thiago Veronezi <[email protected]>
       Hmmmm... I like your idea!

     I will try to implement something like that now.

   []s,

Thiago.


On Wed, Aug 22, 2012 at 1:12 PM, Enrico Olivelli <

     [email protected]

   wrote:

     This is not what I meant
   I'm attaching an example

EJBRealm.zip is a simple Tomcat Realm that performs a JNDI
lookup

     to

   get

     an application provided EJB and invokes a method to
authenticate
the

  user
           <Realm className="ejbrealm.EJBRealm"

       beanname="java:global/************

**localhost/MyAuth/AuthBean"

        realmname="MyRealm" loginMethod="loginUser" />

    MyAuth.zip is an example webapp which uses it

  - Enrico

Il 22/08/2012 18:38, Romain Manni-Bucau ha scritto:

        realm are typically managed by tomcat so tomcat
pacakging
should

     work

   the link between realm and ejbcontext is done through a

wrapper

  realm
   called tomeerealm (added automcatically on the snapshot) so

simply

        define

the jaasrealm:

      http://svn.apache.org/repos/******<http://svn.apache.org/repos/****>
********asf/openejb/trunk/**<h**
ttp://svn.apache.org/repos/*****
*******asf/openejb/trunk/**<http://svn.apache.org/repos/**********asf/openejb/trunk/**>
openejb/*<http://svn.apache.****
org/repos/********asf/openejb/
**trunk/openejb/*<http://svn.**
apache.org/repos/********asf/**openejb/trunk/openejb/*<http://svn.apache.org/repos/********asf/openejb/trunk/openejb/*>
   ***<http://svn.apache.org/****

repos/******asf/openejb/trunk/******<
http://svn.apache.org/****repos/******asf/openejb/trunk/*
***<http://svn.apache.org/**repos/******asf/openejb/trunk/**>
openejb/**<http://svn.apache.***
*org/repos/******asf/openejb/
**trunk/openejb/**<http://svn.**
apache.org/repos/******asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/**>
<http://svn.apache.org/********
repos/****asf/openejb/trunk/**<http://svn.apache.org/******repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>
**>
openejb/**<http://svn.apache.*****
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.****
apache.org/repos/****asf/**<http://apache.org/repos/****asf/**>
openejb/trunk/openejb/**<http:**
//svn.apache.org/repos/******asf/openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<


     http://svn.apache.org/repos/********<http://svn.apache.org/repos/******>
<http://svn.apache.org/**repos/****<http://svn.apache.org/repos/****>
  ****asf/openejb/trunk/openejb/********<
http://svn.apache.org/

**repos/******asf/openejb/**trunk/**openejb/**<
http://svn.**apache.org/repos/******asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/**>
<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>
openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>

openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/****repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.****
org/repos/**asf/openejb/trunk/****openejb/**<http://svn.**
apache.org/repos/**asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/*****
*********src/main/tomee/conf/******

   server.**

      **xml<
       
http://svn.apache.org/repos/**********<http://svn.apache.org/repos/********>
<http://svn.apache.org/**repos/******<http://svn.apache.org/repos/******>
<http://svn.apache.org/****repos/****<http://svn.apache.org/**repos/****>
<http://svn.apache.**org/repos/****<http://svn.apache.org/repos/****>
**asf/openejb/trunk/openejb/********<

http://svn.apache.org/repos/******<http://svn.apache.org/repos/****>
****asf/openejb/trunk/openejb/*****<
http://svn.apache.org/**repos/******asf/openejb/trunk/**
openejb/*<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/*>
***<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
openejb/**<http://svn.apache.**org/repos/****asf/openejb/
**trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>

openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/****repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.****
org/repos/**asf/openejb/trunk/****openejb/**<http://svn.*
*apache.org/repos/**asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/*****
*******src/main/tomee/conf/**
server.**

   **xml<

     http://svn.apache.org/repos/********<http://svn.apache.org/repos/******>
<http://svn.apache.org/**repos/****<http://svn.apache.org/repos/****>
**asf/openejb/trunk/openejb/******<
http://svn.apache.org/repos/****
****asf/openejb/trunk/openejb/***<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/*>
***<http://svn.apache.org/**repos/****asf/openejb/trunk/**
openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/****repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
openejb/**<http://svn.apache.**org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/**repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.**
org/repos/**asf/openejb/trunk/**openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/***
*******src/main/tomee/conf/**
server.**

  **xml<
   
http://svn.apache.org/**repos/******asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
<http:**//svn.apache.org/**repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/**asf/openejb/trunk/**>
<http://**svn.apache.org/****repos/asf/**openejb/trunk/**<http://svn.apache.org/**repos/asf/**openejb/trunk/**>
<h**ttp://svn.apache.org/**repos/**asf/openejb/trunk/**<http://svn.apache.org/**repos/asf/openejb/trunk/**>
openejb/examples/cdi-********ejbcontext-jaas/src/main/**

tomee/conf/server.xml<http://******svn.apache.org/repos/asf/**
openejb/trunk/openejb/******examples/cdi-ejbcontext-jaas/******
src/main/tomee/conf/server.****xml<http://svn.apache.org/**
repos/asf/openejb/trunk/****openejb/examples/cdi-**
ejbcontext-jaas/src/main/****tomee/conf/server.xml<http://**
svn.apache.org/repos/asf/**openejb/trunk/openejb/**
examples/cdi-ejbcontext-jaas/**src/main/tomee/conf/server.xml<http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/cdi-ejbcontext-jaas/src/main/tomee/conf/server.xml>
**>

**>
     here is a sample:

      http://svn.apache.org/repos/****
**********asf/openejb/trunk/**<http://svn.apache.org/repos/************asf/openejb/trunk/**>
**<http://svn.apache.org/repos/************asf/openejb/trunk/**<http://svn.apache.org/repos/**********asf/openejb/trunk/**>
openejb/****<http://svn.**apac**he.org/repos/********asf/**<http://apache.org/repos/********asf/**>
openejb/trunk/openejb/****<htt**
p://svn.apache.org/repos/*******
***asf/openejb/trunk/openejb/******<http://svn.apache.org/repos/********asf/openejb/trunk/openejb/****>
<http://svn.**apache.org/****repos/******asf/**<http://apache.org/**repos/******asf/**>
<http://**apache.org/repos/******asf/**<http://apache.org/repos/******asf/**>
openejb/trunk/openejb/**<http:****//
svn.apache.org/repos/**********<http://svn.apache.org/repos/********>
asf/openejb/trunk/openejb/**<h**
ttp://svn.apache.org/repos/*****
***asf/openejb/trunk/openejb/****<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/**>
    <http://svn.apache.org/********
repos/****asf/openejb/trunk/**<http://svn.apache.org/******repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>
**>

  openejb/**<http://svn.apache.***
***org/repos/****asf/openejb/****

trunk/openejb/**<http://svn.****
apache.org/repos/****asf/**<http://apache.org/repos/****asf/**>
openejb/trunk/openejb/**<http:**
//svn.apache.org/repos/******asf/openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<


     http://svn.apache.org/repos/********<http://svn.apache.org/repos/******>
<http://svn.apache.org/**repos/****<http://svn.apache.org/repos/****>
  ****asf/openejb/trunk/openejb/********<
http://svn.apache.org/

**repos/******asf/openejb/**trunk/**openejb/**<
http://svn.**apache.org/repos/******asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/**>
<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>
openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****
repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>

openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/****repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.****
org/repos/**asf/openejb/trunk/****openejb/**<http://svn.**
apache.org/repos/**asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/<

        http://svn.apache.org/repos/********<http://svn.apache.org/repos/******>
<http://svn.apache.org/**repos/****<http://svn.apache.org/repos/****>
****asf/openejb/trunk/openejb/********<
http://svn.apache.org/**** <http://svn.apache.org/**>

repos/******asf/openejb/trunk/****openejb/**<http://svn.**
apache.org/repos/******asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/**>
<http://svn.apache.org/******repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>
openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/******
repos/****asf/openejb/trunk/**<http://svn.apache.org/****repos/****asf/openejb/trunk/**>
**<http://svn.apache.org/****repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
**>

  openejb/**<http://svn.apache.***
*org/repos/****asf/openejb/**

trunk/openejb/**<http://svn.**apache.org/repos/****asf/**
openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/****repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.****
org/repos/**asf/openejb/trunk/****openejb/**<http://svn.*
*apache.org/repos/**asf/**openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/<

      http://svn.apache.org/repos/********<http://svn.apache.org/repos/******>
<http://svn.apache.org/**repos/****<http://svn.apache.org/repos/****>
**asf/openejb/trunk/openejb/******<
http://svn.apache.org/repos/****
****asf/openejb/trunk/openejb/***<http://svn.apache.org/repos/******asf/openejb/trunk/openejb/*>
***<http://svn.apache.org/**repos/****asf/openejb/trunk/**
openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/****repos/****asf/openejb/trunk/**<http://svn.apache.org/**repos/****asf/openejb/trunk/**>
openejb/**<http://svn.apache.**org/repos/****asf/openejb/**
trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
<http://svn.apache.**org/**repos/**asf/openejb/trunk/**
openejb/**<http://svn.apache.**
org/repos/**asf/openejb/trunk/**openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/<********
http://svn.apache.org/**
repos/** <http://svn.apache.org/repos/****<http://svn.apache.org/repos/**>
  ** <http://svn.apache.org/repos/******<http://svn.apache.org/repos/****>
<http://svn.apache.org/**repos/**<http://svn.apache.org/repos/**>
   asf/openejb/trunk/openejb/********examples/cdi-ejbcontext-*
*jaas/<

****

  http://svn.apache.org/repos/****
**asf/openejb/trunk/openejb/**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**>
**<http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**>
examples/cdi-ejbcontext-jaas/<****http://svn.apache.org/repos/*
*** <http://svn.apache.org/repos/**>
asf/openejb/trunk/openejb/****examples/cdi-ejbcontext-jaas/<**
http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**
examples/cdi-ejbcontext-jaas/<http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/cdi-ejbcontext-jaas/>
      *Romain Manni-Bucau*

      *Twitter: @rmannibucau*

    *Blog: http://rmannibucau.wordpress.**************com<
      http://rmannibucau.wordpress.************com <
    http://rmannibucau.wordpress.**********com<
http://rmannibucau.**

  wordpress.com <http://rmannibucau.wordpress.******com<
http://rmannibucau.**wordpress**.com <http://wordpress.com>
<http://rmannibucau.**wordpress.com<http://rmannibucau.wordpress.com>
    *

2012/8/22 Enrico Olivelli <[email protected]>

         I'd like to bundle my own "realm" implementation
with

my
app,
because I

      want to call an EJB method in order to authenticate
users

    Tomcat comes with JDBCRealm which can be used to lookup

       username/password
    directly in the app DB bypassing application code

      and Tomcat does like to "bundle" a Realm
implementation

inside

   the

    app

      The only "issue" I see is the security context to
use to

access
      this
"realm-EJB"
     Did I miss something ?

     Could you bundle a built-in Tomcat Realm that does the
trick
?

    some thing like
          <Realm className="xxxx.EJBRealm"
     beanLookup="java:comp/env/****

   MyAuthBean"

     authenticateMethod="****************authenticateUser"
runAs="superuser"
       />

    or CDI-EL based
  assuming the presence of a @Named("authbean")
         <Realm className="xxxx.CDIRealm"
authenticateMethod="#{****
authbean.authenticateUser}"
runAs="superuser" />

Thanks
Enrico










Reply via email to