<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
JAAS + EJB3.0 + Jboss unable to propaogate
</h3>
<span style="margin-bottom: 10px;">
reply from <a href="http://community.jboss.org/people/Gauravag">Gaurav Agarwal</a> in <i>EJB 3.0</i> - <a href="http://community.jboss.org/message/552714#552714">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Thanks for ur help.Finaaly i made my application complete.</p><p>The code is as folows..</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Servlet where EJB is called and our authentication is done</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>try</b></font><font color="navy">{</font>
<font color="darkgreen">//here u need to get the logincontext called so that u get authenticated subject</font>
LoginContext loginContext = <font color="navy"><b>new</b></font> LoginContext(<font color="red">"login-config file name"</font>,<font color="navy"><b>new</b></font> PasswordCallbackHandler());
loginContext.login();
 
<font color="darkgreen">//calling ur EJB module</font>
Properties properties = <font color="navy"><b>new</b></font> Properties();
properties.setProperty(<font color="red">"INITIAL_CONTEXT_FACTORY"</font>,<font color="red">"org.jnp.interfaces.NamingContextFactory"</font>);
properties.setProperty(<font color="red">"URL_PKG_PREFIXES"</font>,<font color="red">"org.jboss.naming:org.jnp.interfaces"</font>);
properties.setProperty(<font color="red">"PROVIDER_URL"</font>,<font color="red">"jnp://localhost:1099"</font>);
    
Context  context = <font color="navy"><b>new</b></font> InitialContext(properties);
Object object = context.lookup(<font color="red">"java/AttributeBI/remote"</font>);
<font color="darkgreen">//rest u now</font>
loginContext.logout();
<font color="navy">}</font><font color="navy"><b>catch</b></font>(Exception exception) <font color="navy">{</font>
exception.printStackTrace();<font color="navy">}</font>
 
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Here i have my custom login module which requires (NOTE:user defined) PricipalClass,GroupClass(for roles) ,CallbackHandlers for username and passwords and last CulomLoginModule that implements LoginModule</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre ___default_attr="java" jivemacro="code">PasswordCallbackHandler</pre><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> PasswordCallbackHandler <font color="navy"><b>implements</b></font> CallbackHandler <font color="navy">{</font>
    <font color="navy"><b>public</b></font> PasswordCallbackHandler() <font color="navy">{</font>
    <font color="navy">}</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> handle(Callback[] callbacks)<font color="navy"><b>throws</b></font> java.io.IOException, UnsupportedCallbackException <font color="navy">{</font>
        <font color="navy"><b>for</b></font> (<font color="navy"><b>int</b></font> i = 0; i < callbacks.length; i++) <font color="navy">{</font>
            <font color="navy"><b>if</b></font> (callbacks[i] <font color="navy"><b>instanceof</b></font> NameCallback) <font color="navy">{</font>
                System.out.print(<font color="red">"*"</font>+((NameCallback)callbacks[i]).getPrompt());
                ((NameCallback)callbacks[i]).setName(<font color="red">"username"</font>);
            <font color="navy">}</font> <font color="navy"><b>else</b></font> <font color="navy"><b>if</b></font> (callbacks[i] <font color="navy"><b>instanceof</b></font> PasswordCallback) <font color="navy">{</font>
                System.out.print(<font color="red">"*"</font>+((PasswordCallback)callbacks[i]).getPrompt());
                String pass=<font color="navy"><b>new</b></font> String(<font color="red">"password"</font>);
             ((PasswordCallback)callbacks[i]).setPassword(pass.toCharArray());
            <font color="navy">}</font><font color="navy">}</font><font color="navy">}</font><font color="navy">}</font>   
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>PrincipalClass</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> UserPrincipal <font color="navy"><b>implements</b></font> Principal,
                                      Serializable<font color="navy">{</font>
    <font color="navy"><b>private</b></font> String name;
 
    <font color="darkgreen">/*** Description : UserPrincipal constructor*/</font>
    <font color="navy"><b>public</b></font> UserPrincipal()<font color="navy">{</font>
        name=<font color="red">""</font>;
    <font color="navy">}</font><font color="darkgreen">//UserPrincipal()</font>
  <font color="darkgreen">/** * Description : Parameterize constructor * @param name  */</font>
    <font color="navy"><b>public</b></font> UserPrincipal(String name)<font color="navy">{</font>
        this.name=name;
    <font color="navy">}</font><font color="darkgreen">//UserPrincipal()</font>
 
    <font color="darkgreen">/** * Description : This method is to get Name * @return  */</font>
    <font color="navy"><b>public</b></font> String getName() <font color="navy">{</font>
       <font color="navy"><b>return</b></font> this.name;
    <font color="navy">}</font><font color="darkgreen">//getName()</font>
 
     <font color="navy"><b>public</b></font> String toString() <font color="navy">{</font>
    <font color="navy"><b>return</b></font>(<font color="red">"UserPrincipal:  "</font> + this.name);
    <font color="navy">}</font>
 
    <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> equals(Object o) <font color="navy">{</font>
        <font color="navy"><b>if</b></font> (o == <font color="navy"><b>null</b></font>) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
        <font color="navy">}</font>
        <font color="navy"><b>if</b></font> (<font color="navy"><b>this</b></font> == o) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
        <font color="navy">}</font>
        <font color="navy"><b>if</b></font> (!(o <font color="navy"><b>instanceof</b></font> UserPrincipal)) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
        <font color="navy">}</font>
        UserPrincipal that = (UserPrincipal) o;
        <font color="navy"><b>if</b></font> (this.getName().equals(that.getName())) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
        <font color="navy">}</font>
        <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
    <font color="navy">}</font>
 
    <font color="navy"><b>public</b></font> <font color="navy"><b>int</b></font> hashCode() <font color="navy">{</font>
        <font color="navy"><b>return</b></font> this.name.hashCode();
    <font color="navy">}</font>
 
<font color="navy">}</font><font color="darkgreen">//UserPrinciple</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Pricicpal Group</p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> PrincipalGroup <font color="navy"><b>implements</b></font> Group, Serializable<font color="navy">{</font>
  <font color="navy"><b>private</b></font> <font color="navy"><b>final</b></font> String name;
  <font color="navy"><b>private</b></font> <font color="navy"><b>final</b></font> Set<Principal> users = <font color="navy"><b>new</b></font> HashSet<Principal>();
 
  <font color="navy"><b>public</b></font> PrincipalGroup(String name) <font color="navy">{</font>
    this.name = name;
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> addMember(Principal user) <font color="navy">{</font>
    <font color="navy"><b>return</b></font> users.add(user);
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> removeMember(Principal user) <font color="navy">{</font>
    <font color="navy"><b>return</b></font> users.remove(user);
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> isMember(Principal member) <font color="navy">{</font>
    <font color="navy"><b>return</b></font> users.contains(member);
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> Enumeration<? <font color="navy"><b>extends</b></font> Principal> members() <font color="navy">{</font>
    <font color="navy"><b>return</b></font> Collections.enumeration(users);
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> String getName() <font color="navy">{</font>
    <font color="navy"><b>return</b></font> name;
  <font color="navy">}</font>
 
  <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> equals(Object o) <font color="navy">{</font>
    <font color="navy"><b>if</b></font> (o == <font color="navy"><b>null</b></font>) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
        <font color="navy">}</font>
 
        <font color="navy"><b>if</b></font> (<font color="navy"><b>this</b></font> == o) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
        <font color="navy">}</font>
 
        <font color="navy"><b>if</b></font> (!(o <font color="navy"><b>instanceof</b></font> PrincipalGroup)) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
        <font color="navy">}</font>
        PrincipalGroup that = (PrincipalGroup) o;
 
        <font color="navy"><b>if</b></font> (this.getName().equals(that.getName())) <font color="navy">{</font>
            <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
        <font color="navy">}</font>
        <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
    <font color="navy">}</font>
 
      <font color="navy"><b>public</b></font> <font color="navy"><b>int</b></font> hashCode() <font color="navy">{</font>
            <font color="navy"><b>return</b></font> this.name.hashCode();
        <font color="navy">}</font>
 
<font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>PasswordLoginModule</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> PasswordLoginModule <font color="navy"><b>implements</b></font> LoginModule<font color="navy">{</font>
    <font color="navy"><b>public</b></font> Subject subject;
    <font color="navy"><b>public</b></font> CallbackHandler callbackHandler;
    <font color="navy"><b>public</b></font> UserPrincipal user_principal;
    <font color="navy"><b>private</b></font> UserPrincipal[] roles;
    <font color="navy"><b>public</b></font> UserCredential user_credential;
    Map sharedState;
    Map option;
    String url;
    String driver;
    <font color="navy"><b>private</b></font> String username;
    <font color="navy"><b>private</b></font> String password;
    <font color="navy"><b>boolean</b></font> debug, result;
    Vector<UserCredential> vector_credentials;
    Vector<UserPrincipal> vector_principal;
 
 
    <font color="darkgreen">/**
     * Description : Initialization method for PasswordLoginModule
     * @param subject
     * @param callbackHandler
     * @param sharedState
     * @param options
     */</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> initialize(Subject subject,
                           CallbackHandler callbackHandler,
                           Map sharedState,
                           Map options) <font color="navy">{</font>
    
        System.out.println(<font color="red">"----------Initialization In Login Module----------"</font>);
        this.subject=subject;
        this.callbackHandler=callbackHandler;
        this.sharedState=sharedState;
        this.option=options;
        vector_principal = <font color="navy"><b>new</b></font> Vector();
        vector_credentials = <font color="navy"><b>new</b></font> Vector();       
         <font color="navy"><b>if</b></font>(option.containsKey(<font color="red">"debug"</font>)) <font color="navy">{</font>
            debug = <font color="red">"true"</font>.equals(option.get(<font color="red">"debug"</font>));
        <font color="navy">}</font><font color="darkgreen">//if</font>
  <font color="navy">}</font><font color="darkgreen">//Initialization</font>
 
   <font color="darkgreen">/**
     * Description : login method of module
     * @return
     * @throws LoginException
     */</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> login() <font color="navy"><b>throws</b></font> LoginException <font color="navy">{</font>
         <font color="navy"><b>if</b></font>( debug ) <font color="navy">{</font>
 
         Callback[] callbacks = <font color="navy"><b>new</b></font> Callback[2];
        callbacks[0] = <font color="navy"><b>new</b></font> NameCallback(<font color="red">"UserName :"</font>);
        callbacks[1] = <font color="navy"><b>new</b></font> PasswordCallback(<font color="red">"Password :"</font>, <font color="navy"><b>true</b></font>);       
        <font color="navy"><b>try</b></font> <font color="navy">{</font>
        callbackHandler.handle(callbacks);
          
        <font color="navy">}</font><font color="navy"><b>catch</b></font>(Exception ex) <font color="navy">{</font>
         ex.printStackTrace();
        <font color="navy">}</font>
         username = ((NameCallback) callbacks[0]).getName();
         System.out.println(<font color="red">"user name =  "</font>+username);
         password = <font color="navy"><b>new</b></font> String(((PasswordCallback) callbacks[1]).getPassword());
         System.out.println(<font color="red">"pass =  "</font>+password);
        
         user_principal = <font color="navy"><b>new</b></font> UserPrincipal(username);
         vector_principal.add(user_principal);
         roles = <font color="navy"><b>new</b></font> UserPrincipal[] <font color="navy">{</font>
           <font color="navy"><b>new</b></font> UserPrincipal(<font color="red">"done"</font>) <font color="darkgreen">// for example</font>
           <font color="navy">}</font>;
 
         UserCredential userCredential = <font color="navy"><b>new</b></font> UserCredential();
         userCredential.setProperty(<font color="red">"Roles"</font>,<font color="red">"done"</font>);
         vector_credentials.add(userCredential);
       <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
    <font color="navy">}</font><font color="darkgreen">//login()</font>
 
 
  <font color="darkgreen">/**
     * Description : Commit method to set subject over logincontext
     *               after successful login
     * @return
     * @throws LoginException
     */</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> commit() <font color="navy"><b>throws</b></font> LoginException <font color="navy">{</font>
    
        <font color="navy"><b>if</b></font>( debug ) <font color="navy">{</font>
         System.out.println(<font color="red">"------------Commit Event----------"</font>);
             <font color="navy"><b>if</b></font> ( subject.isReadOnly() ) <font color="navy">{</font>
                <font color="navy"><b>throw</b></font> <font color="navy"><b>new</b></font> LoginException(<font color="red">"Subject is Readonly"</font>);
            <font color="navy">}</font><font color="darkgreen">//if</font>
             <font color="navy"><b>try</b></font><font color="navy">{</font>               
                 this.subject.getPrincipals().addAll(vector_principal);
 
 
                PrincipalGroup group = <font color="navy"><b>new</b></font> PrincipalGroup(<font color="red">"Roles"</font>);
 
                <font color="navy"><b>for</b></font> (UserPrincipal role : roles) <font color="navy">{</font>
                group.addMember(role);
               <font color="navy">}</font>
               subject.getPrincipals().add(group);
               subject.getPublicCredentials().addAll(vector_credentials);
                  <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
            <font color="navy">}</font><font color="navy"><b>catch</b></font>(Exception ex)<font color="navy">{</font>
               ex.printStackTrace(System.out);
               <font color="navy"><b>throw</b></font> <font color="navy"><b>new</b></font> LoginException(ex.getMessage());
           <font color="navy">}</font><font color="darkgreen">//catch</font>
         <font color="navy">}</font>
        <font color="navy"><b>else</b></font> <font color="navy">{</font>
         <font color="navy"><b>return</b></font> <font color="navy"><b>false</b></font>;
        <font color="navy">}</font>
      
    <font color="navy">}</font><font color="darkgreen">//commit()</font>
 
    <font color="darkgreen">/**
     * Description : This method get called when login is get aborted
     * @return
     * @throws LoginException
     */</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> abort() <font color="navy"><b>throws</b></font> LoginException <font color="navy">{</font>
         System.out.println(<font color="red">"-----------Abort Event--------------"</font>);
       <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
    <font color="navy">}</font><font color="darkgreen">//abort()</font>
<font color="darkgreen">/**
     * Decription : This method is to get logout from logincontext
     * @return
     * @throws LoginException
     */</font>
    <font color="navy"><b>public</b></font> <font color="navy"><b>boolean</b></font> logout() <font color="navy"><b>throws</b></font> LoginException <font color="navy">{</font>
          vector_principal.clear();
          vector_credentials.clear();         
       <font color="navy"><b>return</b></font> <font color="navy"><b>true</b></font>;
    <font color="navy">}</font><font color="darkgreen">//logout()   </font>
   <font color="navy">}</font><font color="darkgreen">// PasswordLoginModule</font>
 
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-java">@Stateless(name=mapped.JNDI_NAME)
@RolesAllowed(<font color="red">"done"</font>)
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> AttributeBO <font color="navy"><b>implements</b></font> AttributeBI <font color="navy">{</font>
 
<font color="navy"><b>private</b></font> SessionContext sctx;
 
    <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> setMessageContext(MessageContext messageContext) <font color="navy">{</font>
        this.messageContext = messageContext;
    <font color="navy">}</font>
@Resource
<font color="navy"><b>private</b></font> <font color="navy"><b>void</b></font> setSctx(SessionContext sctx)<font color="navy">{</font>    
        this.sctx = sctx;       
    <font color="navy">}</font>
@Resource
<font color="navy"><b>private</b></font> <font color="navy"><b>void</b></font> seteJBContext(EJBContext eJBContext) <font color="navy">{</font>
        this.eJBContext = eJBContext;
    <font color="navy">}</font>
<font color="navy"><b>private</b></font> AttributeEAO attributeEAO;
 
@EJB
<font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> setAttributeEAO(AttributeEAO attributeEAO) <font color="navy">{</font>
  this.attributeEAO = attributeEAO;
 
<font color="navy">}</font>
 
<font color="darkgreen">/**
  * Description : This method is to create Attribute
  * @param attribute
  */</font>
<font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> createAttribute(Attribute attribute) <font color="navy">{</font>
         
        Principal user_principle=sctx.getCallerPrincipal();
        System.out.println(<font color="red">"Ejb Side Principal "</font>+user_principle.getName());
        System.out.println(<font color="red">"Ejb Side isCallerInRole "</font>+sctx.isCallerInRole(<font color="red">"done"</font>));
       
<font color="navy">}</font><font color="darkgreen">//createAttribute()</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Now in this i want to get my credentials but there is no existing metood to receive the credentials.. Credentails may contain some propertiesas our own variable values...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>my jboss-xml is as</p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag"><jboss></span>
<span class="jive-xml-tag"><security-domain></span>java:/jaas/PassAuth<span class="jive-xml-tag"></security-domain></span>
<span class="jive-xml-tag"></jboss></span>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>my config file ia as</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">PassAuth{
      com.mqa.iam.module.PasswordLoginModule required debug="true"
};
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Also my login config is like this :</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag"><application-policy name="PassAuth"></span>
    <span class="jive-xml-tag"><authentication></span>
       <span class="jive-xml-tag"><login-module code="ur own cutomloginmodule" flag="required"></span>
        <span class="jive-xml-tag"><module-option name="debug"></span>true<span class="jive-xml-tag"></module-option></span>
          <span class="jive-xml-tag"></login-module></span> 
<span class="jive-xml-comment"><!--this is used to propagate the values from web to ejb this is must --></span>    
       <span class="jive-xml-tag"><login-module code="org.jboss.security.ClientLoginModule" flag="required"></span>
       <span class="jive-xml-tag"></login-module></span>   
    <span class="jive-xml-tag"></authentication></span>
  <span class="jive-xml-tag"></application-policy></span>
</code></pre></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/552714#552714">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in EJB 3.0 at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>