5 Replies Latest reply on Oct 2, 2001 11:52 AM by pitdingo

    "Roles" name hardcoded in Group?

      In writing our own LoginModule, we want to stick to the interfaces and not do anything that's specific to a particular app server (like JBoss) - though it will primarily be used in JBoss 2.4.x.

      We've created one (accessed by JBoss via the ProxyLoginModule in auth.conf), and authentication works fine. Our problem is in authorization...

      In looking at the example JBoss code (specifically SimpleServerLoginModule), it seems that we need to create a Group whose name is "Roles" and add the users' roles as member Principals to that Group. Isn't that specific to JBoss *looking* for a Group called "Roles"? Is that a common convention? If not, how can we keep our LoginModule portable?

      Thanks,
      David

        • 1. Re: getOutputStream() has already been called for this respo
          pitdingo

          Hi Tony,

          Thanks for your valuable information.

          But those screens that encountered the problem didn't have the <% %>
          tag.

          Please advise to resolve this deployment issue where it doesn't heppen in Oracle embedded OC4J Server.
          I really keen to using JBOSS application Server for my project.

          Source Code of Login.jsp

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html dir="ltr" lang="en-GB"><head><title></title><meta name="generator" content="Oracle UIX"><link rel="stylesheet" charset="UTF-8" type="text/css" href="/Fisicien-ViewController-context-root/cabo/styles/cache/oracle-desktop-fisicienblaf-2_2_8b3-en-ie-6-windows.css"><script src="/Fisicien-ViewController-context-root/cabo/jsLibs/Common2_2_8.js"></script><script>_defaultTZ()</script></head><script language="javascript">function login(){
           //alert("login");
           if(document.LoginForm.txtUserID.value == ""){
           alert("Please enter your User ID!");
           return;
           }
           if(document.LoginForm.txtPassword.value == ""){
           alert("Please enter your Password!");
           return;
           }
           if(document.LoginForm.drlLocation.value == ""){
           alert("Please choose a Location!");
           return;
           }
           document.LoginForm.action = "/Fisicien-ViewController-context-root/LoginMainAction.do?action=login"
           document.LoginForm.submit();
           //submitForm('LoginForm',0,{'event':'login'});
           }
           function goLogin(){
           if(window.event.keyCode == 13){
           window.event.keyCode = 0;
           login();
           }
           }
           function clearForm(){
           document.LoginForm.txtUserID.value = "";
           document.LoginForm.txtPassword.value = "";
           document.LoginForm.drlLocation.value = "0"
           }</script><body class="xg" onload="_checkLoad(event)" onunload="_checkUnload(event)"><iframe id="_pprIFrame" name="_pprIFrame" frameborder="0" longdesc="#" title="" src="/Fisicien-ViewController-context-root/cabo/images/t.gif" style="position:absolute;top:-100;visibility:hidden" width="0" height="0"></iframe><div id="_pprBlockingDiv" onclick="return _pprConsumeClick(event);" style="position:absolute;left:0;top:0;width:0;height:0;cursor:wait;" onkeyup="return false;" onkeydown="return false;" onkeypress="return false;"></div><div id="_uixDownload" style="behavior:url(#default#download)" class="x38"></div><script>var _cachedLibs;</script><form id="LoginForm" name="LoginForm" style="margin:0px" method="POST" action="/Fisicien-ViewController-context-root/protecteddoc/CM/login.uix"><table width="950" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><img src="cabo/images/login/login_header7.gif" alt="" border="0"></td></tr></table><script>var _tURL="/Fisicien-ViewController-context-root/cabo/images/t.gif";var _axm=1;t('10','2')</script><table width="950" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><object width="950" height="60" type="application/x-oleobject" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"><param name="filename" value="cabo/images/login/draft1.avi"><param name="showcontrols" value="false"><a href="cabo/images/login/draft1.avi" type="application/x-oleobject"></a></object></td></tr></table><script>t('10','10')</script><table cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><table width="500" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td width="500" height="200"><object type="application/x-oleobject" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"><param name="filename" value="cabo/images/login/Login_video.avi"><param name="playcount" value="99"><param name="showcontrols" value="false"><a href="cabo/images/login/Login_video.avi" type="application/x-oleobject"></a></object></td></tr></table></td><td align="center" width="500"><table width="450" align="center" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr><td width="20px"><script>t(20,1)</script></td><td align="right" width="150"><span class="x8"><label for="M__Id">User ID</label></span></td><td width="12"><script>t('12','0')</script></td><td valign="top" nowrap><input id="M__Id" class="x79" onkeypress="return _chain('goLogin()','return _submitOnEnter(event, \'LoginForm\');',this,event,true)" name="txtUserID" size="30" type="text"></td></tr><tr><td width="20px"><script>t(20,1)</script></td><td colspan="2"></td><td></td></tr></table></td></tr></table><script>t('10','10')</script><table width="450" align="center" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr><td width="20px"><script>t(20,1)</script></td><td align="right" width="150"><span class="x8"><label for="M__Ida">Password</label></span></td><td width="12"><script>t('12','0')</script></td><td valign="top" nowrap><input id="M__Ida" class="x79" onkeypress="goLogin()" name="txtPassword" size="30" type="password"></td></tr><tr><td width="20px"><script>t(20,1)</script></td><td colspan="2"></td><td></td></tr></table></td></tr></table><script>t('10','10')</script><table width="450" align="center" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr><td width="20px"><script>t(20,1)</script></td><td align="right" valign="top" width="150"><span class="x8"><label for="M__Idb">Location</label></span></td><td width="12"><script>t('12','0')</script></td><td valign="top" nowrap><select id="M__Idb" class="DropDownMedium" onkeypress="goLogin()" name="drlLocation" size="1"><option>-None-</option><option value="15848048">ACCOUNTS DEPARTMENT</option><option value="15848050">ADMISSION COUNTER</option><option value="15848052">BUSINESS OFFICE</option><option value="15903005">CASHIER COUNTER NO.1</option><option value="15903006">CASHIER COUNTER NO.2</option><option value="15903007">CASHIER COUNTER NO.3</option><option value="15903008">CASHIER COUNTER NO.4</option><option value="15903009">CASHIER COUNTER NO.5</option><option value="15903010">CASHIER COUNTER NO.6</option><option value="15903004">CASHIER COUNTER- BACK OFFICE</option><option value="15848059">CATH LAB</option><option value="15847960">CLEFT CLINIC</option><option value="43903089">CONTRAST EXAMINATION</option><option value="15793746">CONTROL GEN X-RAY2</option><option value="15893580">CORONARY CARE UNIT</option><option value="15848144">CSSD</option><option value="43903088">CT SCAN</option><option value="43835753">DAY CARE UNIT</option><option value="15848171">DELIVERY SUITES</option><option value="15892777">DIETICIAN</option><option value="15793738">DOPPLER ULTRASOUND(IM-DUS)</option><option value="15848047">EMERGENCY DEPARTMENT</option><option value="22829925">ENDOSCOPY</option><option value="15902990">EXECUTIVE HEALTH SCREENING</option><option value="15793739">FLUROSCOPY CONTROL ROOM</option><option value="15848133">FOOD &amp; BEVERAGE STORE</option><option value="15892796">FOOD &amp; BEVERAGE-COFFEE HOUSE</option><option value="15892797">FOOD &amp; BEVERAGE-STAFF CANTEEN</option><option value="43890575">HAEMODIALYSIS</option><option value="41085275">HAND &amp; MIRCROSURGERY UNIT</option><option value="15892805">HIGH DEPENDENCY UNIT</option><option value="33586361">HPI AUDITORIUM</option><option value="15848115">IMAGING RECEPTION COUNTER A</option><option value="15848153">INTENSIVE CARE UNIT</option><option value="15848046">IVF CLINIC</option><option value="15879345">IVU</option><option value="15397495">LABORATORY</option><option value="15068445">LABORATORY OUTPATIENT</option><option value="19540733">LABORATORY-ALLERGY</option><option value="15848157">LITHOTRIPSY</option><option value="15793747">MAMMOGRAPHY</option><option value="15847961">MDC ESPA</option><option value="15847964">MDC ESPB</option><option value="15779803">MEDICAL DEPARTMENT</option><option value="15778163">MEDICAL RECORD</option><option value="15848126">MIS DEPARTMENT</option><option value="15892794">MM DEPT - CONSIGNMENT</option><option value="15848176">MM DEPT - MEDICAL STORE</option><option value="15892791">MM DEPT - PURCHASING</option><option value="15892795">MM DEPT - RETURN STOCK</option><option value="43867838">MOB-GF</option><option value="15846723">MOB1</option><option value="15847956">MOB10</option><option value="15847957">MOB11</option><option value="15847958">MOB12</option><option value="15847959">MOB13</option><option value="15892699">MOB14</option><option value="15847967">MOB15</option><option value="15847968">MOB16</option><option value="15848044">MOB17</option><option value="15846725">MOB2</option><option value="15847965">MOB3</option><option value="20934622">MOB5</option><option value="16803525">MOB6</option><option value="15846727">MOB7</option><option value="15847738">MOB8</option><option value="15847955">MOB9</option><option value="15848121">MRI</option><option value="15892774">NEURO DIAGNOSTIC</option><option value="15848156">NURSERY</option><option value="15903001">ONCOLOGY</option><option value="15827249">OPERATING ROOM 5</option><option value="15848154">OPERATING THEATRE</option><option value="25182646">OPERATION ROOM</option><option value="15827248">OPERATION ROOM 1</option><option value="15827252">OPERATION ROOM 2</option><option value="15827250">OPERATION ROOM 3</option><option value="15903002">PATIENT ADMINISTRATION</option><option value="15892783">PHARMACY CONSIGNMENT</option><option value="15848175">PHARMACY INPATIENT</option><option value="15878853">PHARMACY OUTPATIENT</option><option value="15892785">PHARMACY PURCHASING</option><option value="15892786">PHARMACY RETAIL</option><option value="15892788">PHARMACY STORE</option><option value="15879353">PHYSIO 1</option><option value="15879375">PHYSIO 2</option><option value="15879376">PHYSIO 3</option><option value="15879384">PHYSIO 4</option><option value="15879385">PHYSIO 5</option><option value="15827253">PROCEDURE ROOM 1</option><option value="15827254">PROCEDURE ROOM 2</option><option value="15827255">PROCEDURE ROOM 3</option><option value="15827251">PROCEDURE ROOM 5</option><option value="52177">PROCEDURE ROOM 6</option><option value="15902991">RADIOLOGY DEPARTMENT</option><option value="15848111">REHABILITATION</option><option value="33300062">SINAR JERNEH</option><option value="15892798">SPEECH THERAPY KL</option><option value="21265846">SUITE 52-SPEECH THERAPIST</option><option value="33300112">TELEMEDICINE</option><option value="15793750">ULTRASOUND</option><option value="25182502">WARD A2</option><option value="25182643">WARD B2</option><option value="25182691">WARD C4 (OBSTETRIC &amp; GYNAE)</option><option value="25182705">WARD C7 (EXECUTIVE WARD)</option><option value="25182333">WARD D2 (ADULT - SURGICAL)</option><option value="25182586">WARD D3 (MEDICAL WARD)</option><option value="16803587">WMB2-2819</option><option value="15846728">WMB2-2821</option><option value="15846729">WMB2-2822</option><option value="16805111">WMB2-2822V</option><option value="15846731">WMB2-2824</option><option value="15846733">WMB2-2826</option><option value="15847041">WMB2-2830</option><option value="15847433">WMB2-2832</option><option value="24940895">WMB2-2841</option><option value="30916234">WOMEN&amp;CHILDREN RESOURCE UNIT</option></select></td></tr><tr><td width="20px"><script>t(20,1)</script></td><td colspan="2"></td><td></td></tr></table></td></tr></table><script>t('10','10')</script><table width="450" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td align="center"><script>t('100','10')</script><span class="xd">(Forgot Password?)</span></td></tr></table><script>t('10','10')</script><table width="450" align="center" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><script>t('80','10')</script></td><td><script>t('10','1')</script></td><td><a href="#" onclick="login()"><img src="/Fisicien-ViewController-context-root/cabo/images/cache/en/bLogi6mzP.gif" alt="Login" border="0" align="absmiddle" width="43" height="17"></a></td><td><script>t('10','1')</script></td><td><a href="#" onclick="clearForm()"><img src="/Fisicien-ViewController-context-root/cabo/images/cache/en/bCleaeDwv.gif" alt="Clear" border="0" align="absmiddle" width="42" height="17"></a></td></tr></table></td></tr></table></td></tr></table><script>t('10','4')</script><table valign="middle" cellpadding="0" cellspacing="0" border="0" summary=""><tr><td valign="middle" width="600"><table cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><p><font color="brown"><b>Fisicien e-Health System is a regional health systems</b></font></p></td></tr></table><table cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><p><font color="brown"><b>provider focused on increasing competitiveness and</b></font></p></td></tr></table><table cellpadding="0" cellspacing="0" border="0" summary=""><tr><td><p><font color="brown"><b>quality services of health systems.</b></font></p></td></tr></table><table cellpadding="0" cellspacing="0" border="0" summary=""><tr></tr></table></td><td><script>t('10','10')</script></td><td valign="top"><img src="cabo/images/login/bottomright.gif" alt="" width="400" height="150" border="0" align="center"></td></tr></table><script>t('10','10')</script><span id="_LoginForm_Postscript"><script>function _LoginFormValidater(form){return true;}function _submitOnEnter(e,frm){return (_getKC(e)!=13);}</script></span><script>_submitFormCheck();</script></form></body><!-- Created by Oracle UIX 2.2.8 , laf:oracle.desktop (blaf) -->
          


          JBOSS Log during screen loading
          16:17:50,609 ERROR [Engine] ApplicationDispatcher[/Fisicien-ViewController-context-root] S
          ervlet.service() for servlet jsp threw exception
          java.lang.IllegalStateException: getOutputStream() has already been called for this respon
          se
           at org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:599)
           at org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.j
          ava:163)
           at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
          
           at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122)
           at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
           at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
           at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryI
          mpl.java:115)
           at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java
          :75)
           at org.apache.jsp.protecteddoc.CM.CmCommon_jsp._jspService(CmCommon_jsp.java:204)
           at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
           at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
          
           at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
           at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:237)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
          a:704)
           at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.
          java:590)
           at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.ja
          va:510)
           at oracle.cabo.ui.laf.base.RequestDispatcherIncluder.includeByPath(Unknown Source)
          
           at oracle.cabo.ui.laf.base.ServletIncludeRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
           at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unk
          nown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.laf.base.DataScopeRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.laf.base.DataScopeRenderer.renderContent(Unknown Source)
           at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
           at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.ui.BaseUINode.render(Unknown Source)
           at oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(Unknown Source)
           at oracle.cabo.servlet.AbstractPageBroker.renderPage(Unknown Source)
           at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
           at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:237)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
          a:704)
           at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat
          cher.java:474)
           at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.
          java:409)
           at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja
          va:312)
           at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
          
           at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(Request
          Processor.java:1012)
           at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:
          582)
           at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
           at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
           at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:237)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
          a:704)
           at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat
          cher.java:474)
           at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.
          java:409)
           at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja
          va:312)
           at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
          
           at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor
          .java:455)
           at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
           at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
           at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:237)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:228)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:186)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
          75)
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
          terChain.java:186)
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
          .java:157)
           at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
          214)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:104)
           at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
           at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextVal
          ve.java:198)
           at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
          152)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:104)
           at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.
          java:66)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:102)
           at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociati
          onValve.java:158)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:102)
           at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
           at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:104)
           at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:102)
           at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
           at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
          9)
           at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
          ava:104)
           at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
           at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
           at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
           at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
           at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
          on(Http11Protocol.java:705)
           at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
           at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:6
          83)
           at java.lang.Thread.run(Thread.java:534)
          
          




          • 2. Re:
            starksm64

            There is no standard usage defined by the J2EE specs at the moment. I would expect that J2EE 1.4 attempts to define this, but at the moment there is no such thing as a cross-application server login module.

            • 3. "Roles"
              rlynn

              I too am working on creating a custom login module and have noticed the examples that hard code the word "Roles" as the group name so that JBoss will recognize it.

              It seems rather odd that the point of using JAAS is to standardize on a security framework but a single expression ("Roles") causes the module to be non-portable between app servers. Any knowledge on how the other App servers are doing this role lookup?

              • 4. Re:
                pitdingo

                why not simply pass in the group name as an option in the configuration file?

                • 5. Re: Re:
                  rlynn

                  That's fine. I can pass it in through a config file. However, if the Jboss Security implementation is looking for the keyword "Roles", that won't really buy me anything. For example, if I configure this value to be "Groups", when I authenticate myself JBoss will not find my list of roles.

                  How do other App servers handle this?