Login module get client ip problem

hi everyone,
   we have a custom login module and it works well.  But now a new requirement come out that we must do some check about the client ip address.
   I type my code like this:
((HttpGetterCallback) callbacks[1]).setType(HttpCallback.CLIENT_IP);
callbackHandler.handle(callbacks);
values[1] =((HttpGetterCallback) callbacks[1]).getValue().toString();
   But values[1] always return the portal server ip address, not the client.
The custom login module has been assigned into the logon stack 'ticket'.
  Anyone has some good ideas?
Thanks & regards
Liting Zhou

Usually you can retrieve the value of the client ip address using
owa_util.get_cgi_env('REMOTE_ADDR');But there is a problem when you use a proxy (i.e. Apache) in front of your XE installation.
Here is a workaround documented:
Re: How to get X-Forwarded-For value?
Regards,
~Dietmar.

Similar Messages

  • GlassFish, JAAS Login Module - get remote ejb clien IP address

    How to get remote ejb client IP in my custom JAAS login module if I use Glassfish?
    Edited by: NoName on Sep 23, 2009 4:06 AM

    Hi,
    Try configuring wdisp/add_xforwardedfor_header in web dispatcher as described here:
    http://help.sap.com/saphelp_nw04/helpdata/en/de/89023c59698908e10000000a11402f/content.htm
    And configuring ClientIpHeaderName on the java server as described here:
    http://help.sap.com/saphelp_nw04/helpdata/en/52/46f6a089754e3a964a5d932eb9db8b/content.htm
    Regards,
    Maria

  • Portal authentication using two login module stacks?

    G'day,
    I am noticing something odd when I authenticate to the portal: there are two login module stacks used.
    Background: I have created a custom logon page, which is basically a form with username/password input as per [this guide|http://help.sap.com/saphelp_nw04/helpdata/en/62/601e1eebf54ca6a97e2873c8c63517/content.htm|Changing the logon screen]. I then modified the authschemes.xml file by defining a new authscheme "mylogon" that uses my own login module stack ("mystack") and uses the new logon page ("mylogonform"). This new authscheme is then made the default reference:
    <authscheme name="mylogon">
      <authentication-template>mystack</authentication-template>
      <priority>21</priority>
      <frontendtype>2</frontendtype>
      <frontendtarget>com.foo.bar.mylogonpage</frontendtarget>
    </authscheme>
    <authscheme-refs>
      <authscheme-ref name="default"><authscheme>mylogon</authscheme></authscheme-ref>
      <authscheme-ref name="UserAdminScheme"><authscheme>mylogon</authscheme></authscheme-ref>
    </authscheme-refs>
    When I want to access the portal, up pops the "mylogonform" page, and on clicking the "submit" button the portal page for the user is shown.
    Now here is the interesting thing: when the "ticket" login module stack is unchanged (ie. it uses the BasicpasswordLoginModule), then the log shows that authentication to the portal uses just my login module.
    This can be seen as follows, where I navigate to the portal, logon as one user, then logoff and logon as another user:
    Message : LOGIN.OK
    User: tu-1
    Authentication Stack: mystack
    Message : LOGOUT.OK
    User: tu-1
    Authentication Stack: mystack
    Message : LOGIN.OK
    User: Administrator
    Authentication Stack: mystack
    The "mylogonform" page is shown when logon is required in both cases.
    However, if I modify the "ticket" login module stack by replacing the BasicPasswordLogonModule with a custom logon module that does automatic authentication, then the following is observed when the "mylogonform" page is displayed:
    Message : LOGIN.FAILED
    User: N/A
    Authentication Stack: ticket
    Message : LOGIN.OK
    User: tu-1
    Authentication Stack: ticket
    For some reason, the modified "ticket" login module stack is now being executed, which was not the case when this login module stack was unmodified.
    This stack automatically authenticates the current user (the initial failure is because the new login module asks the browser to send authentication data), and this "failure" causes the logon form to be displayed.
    I can logon to the portal as the same user, and the logs show that "mystack" login module stack is used:
    Message : LOGIN.OK
    User: tu-1
    Authentication Stack: mystack
    Logoff shows that "mystack" is used for the actual logoff, but "ticket" is called again automatically and succeeds:
    Message : LOGOUT.OK
    User: tu-1
    Authentication Stack: mystack
    Message : LOGIN.FAILED
    User: N/A
    Authentication Stack: ticket
    Message : LOGIN.OK
    User: tu-1
    Authentication Stack: ticket
    (Again, the initial logon failure is the new login module requesting that the browser send authentication data in the next request).
    This brings up the "mylogonform" page, even though it appears that a user has already been authenticated. If I try to logon as another user, the following is shown:
    Message : LOGIN.FAILED
    User: Administrator
    Authentication Stack: mystack
    Login Module                                                            Flag        Initialize  Login      Commit     Abort      Details
    com.sap.security.core.server.jaas.EvaluateTicketLoginModule             SUFFICIENT  ok          exception  false      true       authscheme not sufficient: basicauthentication<mylogonform
    Central Checks                                                                                exception             Call logout before login.
    I guess one cannot authenticate as a new user until the current user has been logged out.
    So ... why does the "ticket" login module get called in the second case, but not in the first case (or only shows logging in the second case) ?
    What is the logic behind portal authentication and showing a logon page?
    If I want to use custom authentication and a custom logon page, why is the "ticket" stack called at all?

    Jayesh,
    there is no such thing like "login module stacks". The <b>do</b> exist on the other hand:
    - login module
    - logon stacks
    Login module and logon stacks are part of the JAAS concept for defining a complex pluggable authentication scheme, original by SUN (see: java.sun.com/products/jaas)
    A logon process is defined by a logon stack which itself consists of several login modules. Each login module performs an authentication step. Example:
    login module 1: check if valid sap logon ticket provided
    if module 1 fails: then login module 2: request user id/password
    if module 2 succeeds: then login module 3: create new sap logon ticket for user
    You can define multiple logon stacks and configure individual applications to use the one stack or the other.
    The logon stack configuration is done using visual administrator. Here select the security provider service for configuring logon stacks.
    btw: As logon stacks are "java-only", there are no transaction names (which only exist on Web AS ABAP).
    Regards,
    Dominik

  • Login module BasicPasswordLoginModule

    Hi all!
    I need to configure a Web application on the SAP J2EE engine to use BasiPasswordLoginModule, so it could ask for user and pasword, but it doesn´t work.
    I have configured it in the visual adminstrator Security Provider Service, and I have write this code in my servlet
         LoginContext lc;
              try{
               lc = new LoginContext("sap.com/belma4asdfEAR*belma4asdf");
               lc.login();
              }catch(LoginException le){
                   PrintWriter pw = response.getWriter();
                   pw.print(le.getMessage());
                   pw.print("
    pw.print(le.getCause());
    pw.flush();
    return;
    It produces the output
    Access Denied.
    com.sap.engine.services.security.exceptions.BaseSecurityException: Internal server error. An error log with ID is created. For more information contact your system administrator.
    Access Denied.
    com.sap.engine.services.security.exceptions.BaseLoginException: Access Denied.
         at com.sap.engine.services.security.login.FastLoginContext.login(FastLoginContext.java:233)
         at com.sap.engine.system.SystemLoginModule.login(SystemLoginModule.java:90)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at javax.security.auth.login.LoginContext.invoke(LoginContext.java:675)
         at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129)
         at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607)
         at javax.security.auth.login.LoginContext.login(LoginContext.java:534)
         at eds.hcenergia.pruebas.belma.Belma.process(Belma.java:53)
         at eds.hcenergia.pruebas.belma.Belma.doGet(Belma.java:20)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    It looks like if it was trying to access another login module, instead of the BasicPasswordLoginModule.
    Do I need any other configuration?
    Thank in advance,

    Thanks bvr, but that´s not the problem.
    As I´m using a standard login module, there is no problem with the class loader.
    I have found that I was wrong, because I found in a log that the BasicPasswordLoginModule is been called,  an ended with an error.
    There is an entry in the log with the exception:
    Caught java.lang.NullPointerException
         at com.sap.engine.services.security.resource.ResourceHandleImpl.listResources(ResourceHandleImpl.java:49)
         at com.sap.engine.services.security.resource.ResourceContextImpl.getResourceAliases(ResourceContextImpl.java:147)
         at com.sap.engine.services.security.remoteimpl.resource.RemoteSecurityResourcesImpl.getResourceAliases(RemoteSecurityResourcesImpl.java:131)
         at com.sap.engine.services.security.remoteimpl.resource.RemoteSecurityResourcesImplp4_Skel.dispatch(RemoteSecurityResourcesImplp4_Skel.java:128)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Then, another entry saying:
    "Login module com.sap.engine.services.security.server.jaas.BasicPasswordLoginModule from authentication stack basic errors while authenticating the caller. Most probably the authentication stack is not set up correctly."
    And finally an entry with the exception I have copy above in the post.
    Thanks in advance for any answer.

  • Problems deploying custom JAAS login module (ClassNotFound)

    Hi,
    I've developed a custom made JAAS login module that filters on IP addresse which I am moving from 6.20 to 6.40.
    I've pretty much followed the procedures from http://help.sap.com/saphelp_nw04/helpdata/de/46/3ce9402f3f8031e10000000a1550b0/content.htm , the only major difference is that I needed a reference to WebCallback and therefore a reference to com.sap.security.api.sda from my library project.
    I've especially followed the step with "Adding a Reference to the Classloader of the Security Provider" (http://help.sap.com/saphelp_nw04/helpdata/de/2b/23e4407211732ae10000000a155106/content.htm) , but I think its this step that fails. This has been set to library:<library name> , where <library name> is what is written on the right hand side of visual admin under library. I see that the library is deployed under the folder bin\ext\customer.com~com.customer.portal.login.IPRuleLibrary   , so maybe I will try that name tomorrow morning.
    The exceptions I get are
    #1.5#001321B3B106005C0000000800002E380004039375E59BA6#1129831779936#com.sap.engine.services.security#sap.com/irj#com.sap.engine.services.security#Guest#1####ae7c5500419411daa7fd001321b3b106#SAPEngine_Application_Thread[impl:3]_17##0#0#Error#1#/System/Audit#Java###Exception #1#com.sap.engine.services.security.exceptions.BaseSecurityException: Cannot load a login module.
         at com.sap.engine.services.security.login.LoginContextFactory.init(LoginContextFactory.java:95)
         at com.sap.engine.services.security.login.LoginContextFactory.getLoginContext(LoginContextFactory.java:133)
         at com.sap.engine.services.security.server.AuthenticationContextImpl.getLoginContext(AuthenticationContextImpl.java:227)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.engine.system.SystemLoginModule.initialize(SystemLoginModule.java:72)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at javax.security.auth.login.LoginContext.invoke(LoginContext.java:662)
         at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129)
         at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607)
         at javax.security.auth.login.LoginContext.login(LoginContext.java:534)
         at com.sap.security.core.logon.imp.SAPJ2EEAuthenticator.getLoggedInUser(SAPJ2EEAuthenticator.java:86)
         at com.sapportals.portal.prt.service.authenticationservice.AuthenticationService.getLoggedInUser(AuthenticationService.java:305)
         at com.sapportals.portal.prt.connection.UMHandler.handleUM(UMHandler.java:96)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:186)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:295)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:351)
         at com.sap.portal.navigation.Gateway.service(Gateway.java:68)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
    Caused by: java.lang.ClassNotFoundException: com.customer.portal.login.IPRuleLoginModule
    Found in negative cache
    - Loader Info -
    ClassLoader name: [common:library:com.sap.security.api.sda;library:com.sap.security.core.sda;library:security.class;library:webservices_lib;service:adminadapter;service:basicadmin;service:com.sap.security.core.ume.service;service:configuration;service:connector;service:dbpool;service:deploy;service:jmx;service:jmx_notification;service:keystore;service:security;service:userstore]
    Parent loader name: [Frame ClassLoader]
    References:
       library:com.sap.ip.basecomps
       library:core_lib
       common:library:IAIKSecurity;library:activation;library:mail;library:tcsecssl
       library:servlet
       library:sapxmltoolkit
       library:com.sap.mw.jco
       library:com.sap.util.monitor.jarm
       library:j2eeca
       library:opensql
       interface:security
       interface:log
       interface:shell
       interface:keystore_api
       library:ejb20
       interface:webservices
       library:com.sap.guid
       interface:appcontext
       interface:endpoint_api
       interface:resourceset_api
       interface:resourcecontext_api
       common:service:iiop;service:naming;service:p4;service:ts
       interface:ejbcomponent
       interface:container
       interface:visual_administration
       interface:transactionext
       interface:dsr_ejbcontext_api
       service:timeout
       library:tc~jmx
       library:tcSLUTIL
       service:memory
       library:antlr
       library:jdbdictionary
       library:opensqlextensions
       interface:cross
       service:locking
       service:file
    Resources:
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_toolkit_api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    adminadapter
    adminadapter.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    com.sap.security.core.ume.service
    com.sap.security.core.ume.service.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    webservices_lib
    jaxrpc-api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    com.sap.security.api.sda
    com.sap.security.api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    dbpool
    opensqllib.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    jmx
    jmx_sec.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    webservices_lib
    jaxm-api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    keystore
    keystore.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    security
    security.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    basicadmin
    jstartupapi.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_jaas.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    connector
    connectorimpl.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    webservices_lib
    webservices_lib.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_jaas.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_service_api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_userstore_lib.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    webservices_lib
    saaj-api.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    com.sap.security.core.sda
    com.sap.security.core.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    com.sap.security.core.sda
    com.sap.security.core.tpd.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_csi.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_ssf.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    userstore
    userstore.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    dbpool
    sqljimpl.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_xmlbind.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_util.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    dbpool
    dbpool.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    deploy
    deploy.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_saml_toolkit_core.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    jmx
    jmx.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_compat.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    jmx_notification
    jmx_notification.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    configuration
    configuration.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    basicadmin
    jstartupimpl.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_https.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    services
    basicadmin
    basicadmin.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    security.class
    tc_sec_jaas_test.jar
       C:
    usr
    sap
    EQ2
    J13
    j2ee
    cluster
    server1
    bin
    ext
    com.sap.security.api.sda
    com.sap.security.api.perm.jar
    Loading model: {parent,local,references}
         at com.sap.engine.frame.core.load.ReferencedLoader.loadClass(ReferencedLoader.java:348)
         at com.sap.engine.services.security.Util.loadClass(Util.java:262)
         at com.sap.engine.services.security.Util.loadClassFromAdditionalLoaders(Util.java:204)
         at com.sap.engine.services.security.login.LoginContextFactory.init(LoginContextFactory.java:92)
         ... 45 more
    #1.5#001321B3B106005C0000000900002E380004039375E5A109#1129831779936#com.sap.engine.services.security#sap.com/irj#com.sap.engine.services.security#Guest#1####ae7c5500419411daa7fd001321b3b106#SAPEngine_Application_Thread[impl:3]_17##0#0#Error##Java###Cannot load login module class .#1#com.customer.portal.login.IPRuleLoginModule#

    Hi,
    The problem was solved by using the name customer.com~com.customer.portal.login.IPRuleLibrary for the library (so basically look at the name of your library folder under cluster\j2ee\serverx\bin\ext , not the name reported by visual admin).
    Also I was able to modify the properties of the login module runtime, which made me very happy
    Dagfinn

  • Custom JAAS Login Module 9.0.4 configuration problems

    Hello,
    We have created a custom JAAS Login Module on OC4J 9.0.4 and are having some sort of configuration problem
    We always get this error:
    Caused by: javax.security.auth.login.LoginException: Login Failure: all modules ignored
         at javax.security.auth.login.LoginContext.invoke(LoginContext.java:779)
         at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129)
         at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607)
         at javax.security.auth.login.LoginContext.login(LoginContext.java:535)
    The Login Module is configured for a specific deployed application in the global jazn-data.xml and is being run as I have attached a debugger to the app server.
    Our authentication process succeeds and we return a "true" from the login() method. No exceptions are thrown from our Login Module.
    our ORACLE_HOME/j2ee/home/config/jazn-data.xml has this added
    <application>
    <name>helloworld</name>
    <login-modules>
    <login-module>
    <class>com.test.JaasLoginModule</class>
    <control-flag>required</control-flag>
    <options>
    </options>
    </login-module>
    </login-modules>
    </application>
    The j2ee/home/application-deployments/helloworld/jazn-data.xml looks like this:
    <?xml version="1.0" encoding="UTF-8" standalone='yes'?>
    <!DOCTYPE jazn-data PUBLIC "JAZN-XML Data" "http://xmlns.oracle.com/ias/dtds/jazn-data.dtd">
    <jazn-data />
    and we added this into the j2ee/home/application-deployments/helloworld/orion-applicaton.xml
    <jazn provider="XML" location="jazn-data.xml" >
    <property name="role.mapping.dynamic" value="true"/>
    <property name="custom.loginmodule.provider" value="true"/>
    <property name="jaas.username.simple" value="true" />
    </jazn>
    Are we missing anything? Our code runs, it seems like there is something lacking in the configuration on the OC4J side of things.
    Anyone know what we are missing?
    Thanks....

    Hi,
    if you are on 9.0.4 then <property name="custom.loginmodule.provider" value="true"/> shouldn't work because its a parameter of 10.1.3
    Frank

  • Urgent: JAAS Login Module Deployment Problem

    Hi,
    I have developed a JAAS Login module for the portal (EP6 SP9 sneak preview) and i am getting the following error:
    GroupAssignmentLoginModuleLibrary does not exist in LoadContextWrapper.modifyName.
    com.sap.engine.services.security.exceptions.BaseSecurityException: Can not load a login Module
    The next line is a ClassNotFoundException for the Login Module and the class found in negative cache.
    Please let me know if you know the solution to this problem.
    It is an urgent issue and a solution will be suitably rewarded.
    Regards,
    Vibhu

    Hi Diego,
    Scenario 1: SAP EP to SAP Backend Integration
          In this scenario the most commonly used strategy
          is SAP logon tickets. As far as I know this is the
          best and simple way to implement SSO.
    Scenario 2: SAP EP to Non SAP systems.
          In this scenario various mechanisms can be used.
          It depends on the application you are integrating
          with. SAP does deliver SSO soultions with Lotus
          Notes and Outlook etc. If supported probably it is
          simple to use the SAP solution [Reliability and
          Support].
    Scenario 3: Enterprise Uses third party authetication
          Software.
          For the authntication if the company chooses to use
          some third party product like SiteMinder etc, then
          you can simply use this solution for SAP EP authe-
          tication, and also all your other enterprise
          applications based on the product support. But SAP
          EP to other SAP systems be best integrated with SAP
          logon tickets.
    Scenario 4: SSO using homegrown authetication or some
          third party JAAS module.
          If you have significant applications that are home
          grown that uses some custom authentication mecha-
          nism (Example: Authentication based on ID and
          Password stored in company database ) you can write
          a JAAS module extention to authenticate using that
          database. In other words JAAS is flexible and
          for using external authentication mechanisms.
    There are several mechanisms available that all depends
    on your internal applications/security mechanism/integration etc.
    Here is the link to one of the good articles on SDN about the SAP supported SSO mechanisms.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/58094632-0301-0010-a391-fc0de26f010e
    Hope this information is useful.
    -Venkat Malempati

  • Problem with role mapping in custom login module

    Hi all,
    I have developed custom login modules. They don't use the default user store but own data tables holding the necessary user information.
    Login works fine. But there is one big problem: Only those users that exist with the same user-id in the default user store get roles assigned to it. Whicht leads to 403-errors in my web application.
    Now, this is weired because a user with id 'Susi' has completely different passwords in my custom tables and in the user store, therefore it shouldn't be possible to authenticate 'Susi' against the default user management.
    Next thing is, I don't use the default login modules at all. So why does the application validates against the user store?
    I thought a source of the  problem might be that I don't set the roles correctly. I set the roles as a principal to the subject. I have chosen the role based mapping  in the web-engine.xml and mapped all my custom roles to the server role 'guests'.
    Could anybody think of a solution to this problem ?
    Thanks,  Astrid

    Astrid,
    Sorry to go off-topic on your post...but I have a question in relation to how you deploy your login module. Do you deploy the login module with your application ? I've developed a login module that I would like to deploy by itself, I currently deploy it with the calculator example and it works fine like this, but I need to deploy it by itself. Any tips you can give would be greatly appreciated.
    I've tried to use the deploytool and deploy the module as a library...but I get a "cannot  load a login module" in the logs when authenticating a user.

  • JAAS Login Module development/deployment  - getting en error

    Guys,
    I have developed a JAAS Login Module (as per the SAP documentation) and configured the J2EE Engine  (as per the SAP documentation) for this module to sit amongst several other standard modules,  but I have a problem. I am unable to get the Module working on one portal instance and I am getting an error in the default.trc file when the server restarts after SDM deployment.
    The error is:  "cannot load login module class....... java.lang.ClassNotFoundException........"
    The whole thing works on another instance of EP6 SP16,17 and 18..... however it does not work on this one completely separate instance  (there probably are configuration difference between these instances!)
    Im not quite sure, given this set of circumstances,  what could be causing the Login Module not to load.  Which part of the configuration of the J2EE engine should I look in, something perhaps overlooked in the documentation? 
    Thanks
    Adrian

    With some help I have now solved this.
    In the properties tab of Security Provider,  the reference to your login module in the classloader needs to be prefixed with library:~<provider>.   For the default SAP example the provider in com.sap...... or whatever you have changed it to.

  • Problem in JASS Login Module

    Hi All,
    I am implementing the JAAS login module. I have created the class file, Library file and also created the SDA file .But while configuring an Application to Use the Login Module in Policy Configurations Components which Components should i choose to apply login module for portal.
    My Scenario
       While logging into portal with a user id it should check the password in the some other system.
    For this which component should I choose in the Policy Configurations &#8594; Authentication tab > components in Visual administrator.
    Thanks & Regards
    Praveen.K.T

    Hi Dagfinn,
       This is the log which i got once i Log into the portal . defaulttrace.0.trc
    <!LOGHEADER[START]/>
    <!HELP[Manual modification of the header may cause parsing problem!]/>
    <!LOGGINGVERSION[1.5.3.7185 - 630]/>
    <!NAME[./log/defaultTrace.trc]/>
    <!PATTERN[defaultTrace.trc]/>
    <!FORMATTER[com.sap.tc.logging.ListFormatter]/>
    <!ENCODING[Cp1252]/>
    <!FILESET[0, 20, 10485760]/>
    <!PREVIOUSFILE[defaultTrace.19.trc]/>
    <!NEXTFILE[defaultTrace.1.trc]/>
    <!LOGHEADER[END]/>
    #1.5#0014221E20B500680000019D00001484000426C21E13447B#1168515077593#com.sap.engine.services.httpserver##com.sap.engine.services.httpserver#XIAFUSER#347##cgnsap28_SNW_16885150#XIAFUSER#40a1f1a0a16711dbaec80014221e20b5#SAPEngine_Application_Thread[impl:3]_73##0#0#Error#1#/System/Server#Plain###User XIAFUSER, IP address
    HTTP request processing failed. HTTP error [403] will be returned. The error is [You are not authorized to view the requested resource.No details available].#
    #1.5#0014221E20B5006D0000009700001484000426C21F9057F2#1168515102562#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Cannot write to transaction log TX119.tx.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:289)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onMessageRequest(SessionHandler.java:602)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:103)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1494)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX119.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:279)
         ... 21 more
    #1.5#0014221E20B5006D0000009900001484000426C21F905D72#1168515102562#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Cannot write to transaction log TX119.tx.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1496)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D0000009A00001484000426C21F905F05#1168515102562#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout()#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/Version#Plain###Exception occured during timer callback - Message posting Failed.#
    #1.5#0014221E20B5006D0000009B00001484000426C21F907395#1168515102578#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX119.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 19 more
    #1.5#0014221E20B5006D0000009D00001484000426C21F907951#1168515102578#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D0000009E00001484000426C21F9087B7#1168515102578#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX119.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 22 more
    #1.5#0014221E20B5006D000000A000001484000426C21F908D43#1168515102578#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D000000A100001484000426C21F909BEE#1168515102578#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX119.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 23 more
    #1.5#0014221E20B5006D000000A300001484000426C21F90A23A#1168515102578#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D000000A400001484000426C21F90A3F8#1168515102578#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/Version#Plain###Errors occured while closing Event Session#
    #1.5#0014221E20B5006D000000A500001484000426C21F90A4EB#1168515102578#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D000000A600001484000426C21F90A642#1168515102578#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006D000000A700001484000426C21F90A7C8#1168515102578#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0####4f88a420a16711dbbd2c0014221e20b5#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006E000000A300001484000426C21FE01941#1168515107796#com.sap.engine.services.httpserver##com.sap.engine.services.httpserver#XIAFUSER#352##cgnsap28_SNW_16885150#XIAFUSER#52a4ff50a16711dbc8230014221e20b5#SAPEngine_Application_Thread[impl:3]_36##0#0#Error#1#/System/Server#Plain###User XIAFUSER, IP address
    HTTP request processing failed. HTTP error [403] will be returned. The error is [You are not authorized to view the requested resource.No details available].#
    #1.5#0014221E20B50069000000E300001484000426C220EE5949#1168515125500#com.sapmarkets.bam.jmxadapter.util.LogDirectory##com.sapmarkets.bam.jmxadapter.util.LogDirectory#J2EE_ADMIN#244####3fc43bd0a16711dba4820014221e20b5#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#/System/Server#Plain###Error writing log directory entryG:
    tmp
    CGNSAP28_SNW_01_16885150_lv_.xml (Access is denied)#
    #1.5#0014221E20B50069000000E500001484000426C220EE5AE4#1168515125500#com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler##com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler#J2EE_ADMIN#244####3fc43bd0a16711dba4820014221e20b5#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#/System/Server#Plain###com.sapmarkets.bam.util.BAMRuntimeException: Error occured while trying to register     a new log#
    #1.5#0014221E20B50069000000E700001484000426C220EE5C53#1168515125500#com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler##com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler#J2EE_ADMIN#244####3fc43bd0a16711dba4820014221e20b5#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#/System/Server#Plain###com.sapmarkets.bam.util.BAMRuntimeException: <Localization failed: ResourceBundle='com.sapmarkets.bam.util.LogViewerMessages', ID='Error while writing to directory.', Arguments: []> : Can't find resource for bundle java.util.PropertyResourceBundle, key Error while writing to directory.#
    #1.5#0014221E20B50069000000E900001484000426C220EE6731#1168515125500#com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler##com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler#J2EE_ADMIN#244####3fc43bd0a16711dba4820014221e20b5#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#/System/Server#Plain###Originated from: com.sapmarkets.bam.util.BAMRuntimeException: <Localization failed: ResourceBundle='com.sapmarkets.bam.util.LogViewerMessages', ID='Error while writing to directory.', Arguments: []> : Can't find resource for bundle java.util.PropertyResourceBundle, key Error while writing to directory.
         at com.sapmarkets.bam.jmxadapter.util.LogDirectory.write(LogDirectory.java:779)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.addToDirectory(AbstractFileLogHandler.java:361)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.registerLogAsMBean(AbstractFileLogHandler.java:249)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.registerLogMBean(AbstractFileLogHandler.java:151)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.registerLogMBean(AbstractFileLogHandler.java:85)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.registerLogMBean(AbstractFileLogHandler.java:402)
         at com.sapmarkets.bam.jmxadapter.sapjlog.AbstractFileLogHandler.handleEvent(AbstractFileLogHandler.java:469)
         at com.sap.tc.logging.LoggingManager.notifyAddLog(LoggingManager.java:342)
         at com.sap.tc.logging.LogController.addLog(LogController.java:1317)
         at com.sap.sql.trace.SQLTrace.onJ2ee(SQLTrace.java:323)
         at com.sap.engine.services.log_configurator.admin.LogConfigurator.setSQLTrace(LogConfigurator.java:1373)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.setAttribute(DefaultMBeanInvoker.java:217)
         at com.sap.pj.jmx.mbeaninfo.AdditionalInfoProviderMBean.setAttribute(AdditionalInfoProviderMBean.java:244)
         at com.sap.pj.jmx.server.MBeanServerImpl.setAttribute(MBeanServerImpl.java:849)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.setAttribute(MBeanServerWrapperInterceptor.java:399)
         at com.sap.engine.services.jmx.CompletionInterceptor.setAttribute(CompletionInterceptor.java:520)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.setAttribute(BasicMBeanServerInterceptor.java:403)
         at com.sap.jmx.provider.ProviderInterceptor.setAttribute(ProviderInterceptor.java:289)
         at com.sap.engine.services.jmx.RedirectInterceptor.setAttribute(RedirectInterceptor.java:466)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.setAttribute(MBeanServerInterceptorChain.java:312)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.setAttribute(MBeanServerSecurityWrapper.java:378)
         at com.sap.engine.services.jmx.MBeanServerInvoker.invokeMbs(MBeanServerInvoker.java:146)
         at com.sap.engine.services.jmx.ClusterInterceptor.invokeMbs(ClusterInterceptor.java:212)
         at com.sap.engine.services.jmx.ClusterInterceptor.setAttribute(ClusterInterceptor.java:1260)
         at com.sap.engine.services.jmx.MBeanServerInterceptorInvoker.invokeMbs(MBeanServerInterceptorInvoker.java:117)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImpl.invokeMbs(P4ConnectorServerImpl.java:61)
         at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImplp4_Skel.dispatch(P4ConnectorServerImplp4_Skel.java:64)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000D300001484000426C22119800E#1168515128328#com.sap.engine.services.httpserver##com.sap.engine.services.httpserver#XIAFUSER#355##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/System/Server#Plain###User XIAFUSER, IP address
    HTTP request processing failed. HTTP error [403] will be returned. The error is [You are not authorized to view the requested resource.No details available].#
    #1.5#0014221E20B5006B000000D400001484000426C2215A561B#1168515132578#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Cannot write to transaction log TX11d.tx.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:289)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onMessageRequest(SessionHandler.java:602)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:103)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1494)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX11d.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:279)
         ... 21 more
    #1.5#0014221E20B5006B000000D600001484000426C2215A5C1E#1168515132578#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Cannot write to transaction log TX11d.tx.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1496)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000D700001484000426C2215A5D37#1168515132578#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout()#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/Version#Plain###Exception occured during timer callback - Message posting Failed.#
    #1.5#0014221E20B5006B000000D800001484000426C2215A7168#1168515132593#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX11d.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 19 more
    #1.5#0014221E20B5006B000000DA00001484000426C2215A7665#1168515132593#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000DB00001484000426C2215A836C#1168515132593#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX11d.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 22 more
    #1.5#0014221E20B5006B000000DD00001484000426C2215A88D2#1168515132593#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000DE00001484000426C2215A95CC#1168515132593#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Internal error.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:131)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.setCommitState(TransactionLogFileImpl.java:391)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onRollbackRequest(SessionHandler.java:430)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:112)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.rollback(Session.java:356)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX11d.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.setState(TransactionLogFileImpl.java:123)
         ... 23 more
    #1.5#0014221E20B5006B000000E000001484000426C2215A9B81#1168515132593#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000E100001484000426C2215A9D34#1168515132593#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/Version#Plain###Errors occured while closing Event Session#
    #1.5#0014221E20B5006B000000E200001484000426C2215A9E25#1168515132593#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.rollback(SessionImpl.java:206)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:249)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000E300001484000426C2215A9F86#1168515132593#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.xa.SessionAdapter.close(SessionAdapter.java:52)
         at com.sap.engine.services.jmsconnector.spi.ManagedSession.sessionClosed(ManagedSession.java:279)
         at com.sap.engine.services.jmsconnector.cci.SessionImpl.close(SessionImpl.java:119)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:276)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B5006B000000E400001484000426C2215AA0F9#1168515132593#com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession##com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close()#J2EE_GUEST#0##cgnsap28_SNW_16885150#XIAFUSER#5edd0c90a16711dbb44c0014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/Version#Plain###Error From List = javax.jms.JMSException: Internal error.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.rollback(Session.java:357)
         at com.sap.jms.client.session.Session.close(Session.java:184)
         at com.sap.jms.client.connection.Connection.close(Connection.java:132)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionFactoryImpl.connectionClosed(QueueConnectionFactoryImpl.java:215)
         at com.sap.engine.services.jmsconnector.cci.ConnectionImpl.close(ConnectionImpl.java:268)
         at com.sap.engine.services.jmsconnector.cci.QueueConnectionImpl.close(QueueConnectionImpl.java:69)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.close(ISPEventSession.java:287)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:366)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    #1.5#0014221E20B500690000010000001484000426C221AB8C9D#1168515137906#com.sap.engine.services.httpserver##com.sap.engine.services.httpserver#XIAFUSER#358##cgnsap28_SNW_16885150#XIAFUSER#6494fa30a16711dbb56f0014221e20b5#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#/System/Server#Plain###User XIAFUSER, IP address
    HTTP request processing failed. HTTP error [403] will be returned. The error is [You are not authorized to view the requested resource.No details available].#
    #1.5#0014221E20B5006B000000E500001484000426C22324289D#1168515162593#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=default#J2EE_GUEST#0####7350a510a16711dba0c40014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerException: Cannot write to transaction log TX121.tx.
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:289)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.onMessageRequest(SessionHandler.java:602)
         at com.sap.jms.server.sessioncontainer.handler.SessionHandler.process(SessionHandler.java:103)
         at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:143)
         at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
         at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
         at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
         at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:572)
         at com.sap.jms.server.SynchronousNetworkAdapter.sendAndWait(SynchronousNetworkAdapter.java:130)
         at com.sap.jms.client.connection.Connection.sendPacket(Connection.java:656)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1494)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.io.FileNotFoundException: C:
    Documents and Settings
    snwadm
    sapjms
    101a59e
    1
    TX121.tx (Access is denied)
         at java.io.RandomAccessFile.open(Native Method)
         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl$TxContextImpl.assureOpened(TransactionLogFileImpl.java:50)
         at com.sap.jms.server.sessioncontainer.transactionlog.TransactionLogFileImpl.store(TransactionLogFileImpl.java:279)
         ... 21 more
    #1.5#0014221E20B5006B000000E700001484000426C223242E19#1168515162593#com.sap.jms.client.session.Session##com.sap.jms.client.session.Session#J2EE_GUEST#0####7350a510a16711dba0c40014221e20b5#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###checkReceivedPacket
    [EXCEPTION]
    #1#javax.jms.JMSException: Cannot write to transaction log TX121.tx.
         at com.sap.jms.protocol.notification.ServerExceptionResponse.getException(ServerExceptionResponse.java:271)
         at com.sap.jms.client.session.Session.checkReceivedPacket(Session.java:2533)
         at com.sap.jms.client.session.Session.sendMessage(Session.java:1496)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:464)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:276)
         at com.sap.jms.client.session.MessageProducer.send(MessageProducer.java:245)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPEventSession.postEvent(ISPEventSession.java:231)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.fireEvent(ISPTimerEvent.java:298)
         at com.sap.aii.af.protocol.ispeak.services.timer.impl.ISPTimerEvent.timeout(ISPTimerEvent.java:336)
         at com.sap.engine.services.timeout.TimeoutNode.run(TimeoutNode.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run

  • Can I get the resource in a JAAS login module?

    G'day,
    I am writing a custom JAAS login module for deplyment in Netweaver application server. I'd like to get information about the resource that is protected by that login module (specifically, the URL).
    The HttpGetterCallback class does not provide this information. All I can get is the host name and port from the HTTP headers.
    Is there any way to get the full URL of the resource within a login module?
    -- Geoff

    G'day,
    Note also that I tried using the WebCallback class, which has a getRequest() method that returns a HttpServletRequest.
    But this callback seems to be ignored by the callback handler used in Netweaver AS, as the getRequest() method returns null, even though the login module is used to protect a servlet.
    [ As an aside, I passed a custom callback to the CallbackHandler supplied by Netweaver AS, and the callbackHandler.handle() method did not throw UnsupportedCallbackException, which seems to be in violation of the JAAS standard ]
    So ... HttpGetterCallback does not return resource URL information, and WebCallback is apparently ignored by the callback handler (which should really throw an exception here).
    Are there any other ways to get the URL of the resource in a Netweaver AS login  module?

  • How to get Custom Login Module to communicate with frontendtarget

    We have created a custom login module and placed it in our login module stack.
    So we have the following 3 Login Modules in our stack:
    EvaluateTicketModule
    OurCustomLoginModule
    CreateTicketModule
    Also we are using the standard SAP login screen for our frontendtarget, see our authschemes.xml entry:
    <authscheme name="cglogon">
                <authentication-template>
                    form
                </authentication-template>
                <priority>21</priority>
                <frontendtype>2</frontendtype>
                <frontendtarget>com.sap.portal.runtime.logon.certlogon</frontendtarget>
            </authscheme>
    Question:
    There are standard screens in the SAP login PAR:
                changePasswordPage.jsp
                umLogonProblemPage.jsp
                umResetPasswordPage.jsp
    How do I trigger one of these screens from my Login() method of my
    custom login module?  I thought if I throw some specific exception, these screens would
    be called?

    A bit more info. 
    We created a new Authentication Scheme for certain iviews that are deemed more "sensitive" that required a step-up authentication. 
    I changed the Iview property "Authentication Scheme" to our custom one.
    If I navigate into one of these more sensitive Iviews, I get the standard SAP login screen: <frontendtarget>com.sap.portal.runtime.logon.certlogon</frontendtarget>
    Whis is what i expect.
    I enter a username and password and click Logon button.  I see that it successfully hits our custom login module and goes through Login(), and Commit() methods and finally displays the iview i originally requested.
    However, on a failure, i want it to return focus to the SAP login screen with an error explaining why...(i.e. wrong password, account locked, etc.)
    However, It always give iview runtime exception with Access Denied.
    #1.5 #0018FE8C6FD800690000029000004D6C00045B6E5E7D6014#1226429496628#com.sap.engine.services.security.authentication.logincontext#sap.com/irj#com.sap.engine.services.security.authentication.logincontext#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Debug##Java###Login module {0} from authentication stack {1} does not authenticate the caller.#2#companyname.com.CGLoginModuleClass#form#
    #1.5 #0018FE8C6FD800690000029100004D6C00045B6E5E7D6275#1226429496629#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule#sap.com/irj#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule.abort()#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Path##Plain###Entering method#
    #1.5 #0018FE8C6FD800690000029200004D6C00045B6E5E7D6308#1226429496629#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule#sap.com/irj#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Debug##Plain###Internal Login Module data has been reset.#
    #1.5 #0018FE8C6FD800690000029300004D6C00045B6E5E7D6386#1226429496629#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule#sap.com/irj#com.sap.engine.services.security.authentication.loginmodule.ticket.EvaluateTicketLoginModule#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Path##Java###Exiting method with {0}#1#true#
    #1.5 #0018FE8C6FD800690000029400004D6C00045B6E5E7D6438#1226429496629#com.sap.engine.services.security.authentication.loginmodule.ticket.CreateTicketLoginModule#sap.com/irj#com.sap.engine.services.security.authentication.loginmodule.ticket.CreateTicketLoginModule.abort()#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Path##Plain###Entering method#
    #1.5 #0018FE8C6FD800690000029500004D6C00045B6E5E7D64B2#1226429496629#com.sap.engine.services.security.authentication.loginmodule.ticket.CreateTicketLoginModule#sap.com/irj#com.sap.engine.services.security.authentication.loginmodule.ticket.CreateTicketLoginModule#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Path##Java###Exiting method with {0}#1#true#
    #1.5 #0018FE8C6FD800690000029700004D6C00045B6E5E7D6750#1226429496630#com.sap.engine.services.security.authentication.logincontext#sap.com/irj#com.sap.engine.services.security.authentication.logincontext#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Info#1#/System/Security/Authentication#Plain###LOGIN.FAILED
    User: N/A
    Authentication Stack: form
    Login Module                                                               Flag        Initialize  Login      Commit     Abort      Details
    1. com.sap.security.core.server.jaas.EvaluateTicketLoginModule             SUFFICIENT  ok          exception             true       authscheme not sufficient: uidpwdlogon<cglogon
            \#1 ume.configuration.active = true
    2. companyname.com.CGLoginModuleClass                                         REQUISITE   ok          exception             true       Authentication did not succeed.
    3. com.sap.security.core.server.jaas.CreateTicketLoginModule               OPTIONAL    ok                                true      
            \#1 ume.configuration.com = true#
    #1.5 #0018FE8C6FD800690000029900004D6C00045B6E5E7DA973#1226429496647#System.err#sap.com/irj#System.err#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Plain###Nov 11, 2008 10:51:36...                    com.sap.portal.portal [SAPEngine_Application_Thread[impl:3]_24] Error: Exception ID:10:51_11/11/08_0002_176065950
    #1.5 #0018FE8C6FD800690000029B00004D6C00045B6E5E7DCA91#1226429496647#com.sap.portal.portal#sap.com/irj#com.sap.portal.portal#JOHNDOE#182##servername_EPX_176065950#JOHNDOE#bb3365a0b02111ddabea0018fe8c6fd8#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/System/Server#Java###Exception ID:10:51_11/11/08_0002_176065950
    [EXCEPTION]
    {0}#1#com.sapportals.portal.prt.runtime.PortalRuntimeException: Access is denied: pcd:portal_content/com.companyname.portal.capitalgroup/com.companyname.com.security/com.companyname.portal.cghressnaaa/com.sap.pct.ess.employee_self_service/com.companyname.pg_sensitiveWebdynpro/com.cg.ivu_saplogon_0 - user: Guest
         at com.sapportals.portal.prt.deployment.DeploymentManager.getPropertyContentProvider(DeploymentManager.java:1936)
         at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.refresh(PortalComponentContextItem.java:230)
         at com.sapportals.portal.prt.core.broker.PortalComponentContextItem.getContext(PortalComponentContextItem.java:312)
         at com.sapportals.portal.prt.component.PortalComponentRequest.getComponentContext(PortalComponentRequest.java:385)
         at com.sapportals.portal.prt.connection.PortalRequest.getRootContext(PortalRequest.java:435)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:607)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:545)
    and here's my login method...
         public boolean login() throws javax.security.auth.login.LoginException
              this.succeeded = false;
              String passwordString = "";
              if (callbackHandler == null)
                   throw new LoginException("Error: no CallbackHandler available to garner authentication information from the user");
              HttpGetterCallback httpgettercallback = new HttpGetterCallback();
              NameCallback nc = new NameCallback("User:");
              PasswordCallback pc = new PasswordCallback("Password:", false);
              Callback[] callbacks = new Callback[] { nc, pc };
              try
                   callbackHandler.handle(callbacks);
              catch (IOException e)
                   throwUserLoginException(e, LoginExceptionDetails.IO_EXCEPTION);
              catch (UnsupportedCallbackException e)
                   return false;
              String userid = nc.getName();
              char[] password = pc.getPassword();
              pc.clearPassword();
              if (userid.length() == 0)
                   throwNewLoginException("USERID IS MISSING!", LoginExceptionDetails.IO_EXCEPTION);
              else
                   username = userid;
              if (password.length == 0)
                   throwNewLoginException("PASSWORD IS MISSING!", LoginExceptionDetails.NO_PASSWORD);
              else
                   passwordString = new String(password);
              String eccLoginResult = validateECCAuthentication(username, passwordString);
              if (!eccLoginResult.equals(""))
                   myLoc.infoT(this.username + " - failed ECC authentication.");
                   throwNewLoginException("Wrong UserId/Password", LoginExceptionDetails.WRONG_USERNAME_PASSWORD_COMBINATION);
              else
                   myLoc.infoT(this.username + " - failed ECC authentication.");
                   this.succeeded = true;
              if (this.succeeded)
                   try
                        refreshUserInfo(this.username);
                   catch (SecurityException e)
                        throwUserLoginException(e);
                   if (sharedState.get(AbstractLoginModule.NAME) == null)
                        sharedState.put(AbstractLoginModule.NAME, this.username);
                        this.nameSet = true;
              else
                   throwNewLoginException("Wrong UserId/Password", LoginExceptionDetails.WRONG_USERNAME_PASSWORD_COMBINATION);
              return this.succeeded;

  • Problems with custom login module/authscheme in Portal iViews

    Hi,
    In our portal users must login with their username and password ("ticket" login module stack) to access most of the content. For some of the iViews containing confidential data we would like to ask the users some personal questions before giving them access.
    I followed all the steps described in the [official documentation |http://help.sap.com/saphelp_nw04s/helpdata/en/8c/f03541c6afd92be10000000a1550b0/content.htm]:
    - created a custom login module
    - added it to a custom login module stack
    - added a custom authscheme in the authschemes.xml file
    - assigned the iView to this authscheme
    I also create a PortalComponent that reads the user entries and calls my login module (JSP not shown):
    public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)     {          
        HttpServletRequest req = request.getServletRequest();
        HttpServletResponse resp = request.getServletResponse(false);
        ILogonAuthentication ila = UMFactory.getLogonAuthenticator();
        Subject subject = ila.logon(req, resp, "myauthscheme");
        // if authenticated what to do next??
    Now when I try to access the protected iView, I see my screen to answer the questions, I press submit and my login module is called. But, I never get redirected to the iView I'm supposed to go. So I still have two questions:
    1) Which login modules should be in the login module stack? Should I include the BasicPasswordLoginModule?
    For the moment I have:
    EvaluateTicketLoginModule (SUFFICIENT)
    MyCustomLoginModule (REQUISITE)
    CreateTicketLoginModule (OPTIONAL)
    2) How can I be redirected to the protected iView after the user is being authenticated? Is it the portal framework who is responsible to navigate there automatically? Or is it in my own code after the logon() call? In that case how can I retrieve the destination URL?
    Thanks,
    Martin

    I'm using the version 10.1.3.0.4 (SU5).
    The error is:
    06/09/28 18:09:05 WARNING: Application.setConfig Application: current-workspace-app is in failed state as initialization failedjava.lang.InstantiationException
    28/09/2006 18:09:05 com.evermind.server.Application setConfig
    WARNING: Application: current-workspace-app is in failed state as initialization failedjava.lang.InstantiationException
    2006-09-28 18:09:05.390 WARNING J2EE 0JR0013 Exception initializing deployed application: current-workspace-app. null
    My JAAS-oc4j-app content is:
    <log>
    <file path="JAAS-oc4j-app.log" xmlns=""/>
    </log>
    <jazn provider="XML" location="JAAS-jazn-data.xml">
    <property name="role.mapping.dynamic" value="true"/>
    <property name="custom.loginmodule.provider" value="true"/>
    <property name="jaas.username.simple" value="true"/>
    </jazn>
    <data-sources path="JAAS-data-sources.xml"/>
    Thanks for reply.

  • Custom Login Modules - JAAS API to get AppConfigurationEntry-s

    After adding Login Modules via the Visual Admin for the  J2EE engine, is there default application name by which they are registered (see "what.goes.here" in the snippet below)?
    I need to access an instance of a JAAS Login Module.
       import javax.security.auth.login.Configuration;
       import javax.security.auth.login.AppConfigurationEntry;
       Configuration c = Configuration.getConfiguration();
       AppConfigurationEntry[] entries = c.getAppConfigurationEntry( "what.goes.here" );
    Thanks.
    James Walkup
    MomentumSI Inc.
    Austin, Texas, USA

    Hello there again xtanto,
    I blogged about this last year - perhaps you could run over to http://stegemanoracle.blogspot.com and have a look. I'd send you the exact link, but I cannot access blogspot from work.
    John

  • Help - using custom login module with embedded jdev oc4j to access ejb 3

    Hi All (Frank ??),
    I'm just wondering if anyone has successfully been able to leverage a custom login module in combination
    with a client that connects to a local EJB 3 stateless session bean through Jdeveloper 10.1.3.2's embedded oc4j.
    I have spent 2+ days trying to get this to work - and i think I resound now to the fact im going to
    have to deploy to oc4j standalone instead.
    I got close.. but finally was trumped with the following error from the client trying to access the ejb:-
    javax.naming.NoPermissionException: Not allowed to look up XXXXXX, check the namespace-access tag
    setting in orion-application.xml for details.
    Using the various guides available, I had no problem getting the custom login module working
    with a local servlet running from JDev's embedded oc4j.. however with ejb - no such luck.
    I have a roles table (possible values Member, Admin) - that maps to sr_Member and sr_Admin
    respectively in various config files.
    I'm using EJB 3 annotations for protecting methods .. for example
    @RolesAllowed("sr_Member")
    Steps that I had to do so far :-
    In <jdevhome>\jdev\system\oracle.jwee.10.1.3.40.66\embedded-oc4j\config\system-jazn-data.xml1) Add custom login module
        <application>
          <name>current-workspace-app</name>
          <login-modules>
            <login-module>
              <class>kr.security.KnowRushLoginModule</class>
              <control-flag>required</control-flag>
              <options>
                <option>
                  <name>dataSource</name>
                  <value>jdbc/DB_XE_KNOWRUSHDS</value>
                </option>
                <option>
                  <name>user.table</name>
                  <value>users</value>
                </option>
                <option>
                  <name>user.pk.column</name>
                  <value>id</value>
                </option>
                <option>
                  <name>user.name.column</name>
                  <value>email_address</value>
                </option>
                <option>
                  <name>user.password.column</name>
                  <value>password</value>
                </option>
                <option>
                  <name>role.table</name>
                  <value>roles</value>
                </option>
                <option>
                  <name>role.to.user.fk.column</name>
                  <value>user_id</value>
                </option>
                <option>
                  <name>role.name.column</name>
                  <value>name</value>
                </option>
              </options>
            </login-module>
          </login-modules>
        </application>2) Grant login rmi permission to roles associated with custom login module (also in system-jazn-data.xml)
      <grant>
        <grantee>
          <principals>
            <principal>
              <realm-name>jazn.com</realm-name>
              <type>role</type>
              <class>kr.security.principals.KRRolePrincipal</class>
              <name>Admin</name>
            </principal>
          </principals>
        </grantee>
        <permissions>
          <permission>
            <class>com.evermind.server.rmi.RMIPermission</class>
            <name>login</name>
          </permission>
        </permissions>
      </grant>
      <grant>
        <grantee>
          <principals>
            <principal>
              <realm-name>jazn.com</realm-name>
              <type>role</type>
              <class>kr.security.principals.KRRolePrincipal</class>
              <name>Member</name>
            </principal>
          </principals>
        </grantee>
        <permissions>
          <permission>
            <class>com.evermind.server.rmi.RMIPermission</class>
            <name>login</name>
          </permission>
        </permissions>
      </grant>3) I've tried creating various oracle and j2ee deployment descriptors (even though ejb-jar.xml and orion-ejb-jar.xml get created automatically when running the session bean in jdev).
    My ejb-jar.xml contains :-
    <?xml version="1.0" encoding="utf-8"?>
    <ejb-jar xmlns ....
      <assembly-descriptor>
        <security-role>
          <role-name>sr_Admin</role-name>
        </security-role>
        <security-role>
          <role-name>sr_Member</role-name>
        </security-role>
      </assembly-descriptor>
    </ejb-jar>Note- i'm not specifying the enterprise-beans stuff, as JDev seems to populate this automatically.
    My orion-ejb-jar.xml contains ...
    <?xml version="1.0" encoding="utf-8"?>
    <orion-ejb-jar ...
      <assembly-descriptor>
        <security-role-mapping name="sr_Admin">
          <group name="Admin"></group>
        </security-role-mapping>
        <security-role-mapping name="sr_Member">
          <group name="Member"></group>
        </security-role-mapping>
        <default-method-access>
          <security-role-mapping name="sr_Member" impliesAll="true">
          </security-role-mapping>
        </default-method-access>
      </assembly-descriptor>My orion-application.xml contains ...
    <?xml version="1.0" encoding="utf-8"?>
    <orion-application xmlns ...
      <security-role-mapping name="sr_Admin">
        <group name="Admin"></group>
      </security-role-mapping>
      <security-role-mapping name="sr_Member">
        <group name="Member"></group>
      </security-role-mapping>
      <jazn provider="XML">
        <property name="role.mapping.dynamic" value="true"></property>
        <property name="custom.loginmodule.provider" value="true"></property>
      </jazn>
      <namespace-access>
        <read-access>
          <namespace-resource root="">
            <security-role-mapping name="sr_Admin">
              <group name="Admin"/>
              <group name="Member"/>
            </security-role-mapping>
          </namespace-resource>
        </read-access>
        <write-access>
          <namespace-resource root="">
            <security-role-mapping name="sr_Admin">
              <group name="Admin"/>
              <group name="Member"/>
            </security-role-mapping>
          </namespace-resource>
        </write-access>
      </namespace-access>
    </orion-application>My essentially auto-generated EJB 3 client does the following :-
          Hashtable env = new Hashtable();
          env.put(Context.SECURITY_PRINCIPAL, "matt.shannon");
          env.put(Context.SECURITY_CREDENTIALS, "welcome1");
          final Context context = new InitialContext(env);
          KRFacade kRFacade = (KRFacade)context.lookup("KRFacade");
    ...And throws the error
    20/04/2007 00:55:37 oracle.j2ee.rmi.RMIMessages
    EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    javax.naming.NoPermissionException: Not allowed to look
    up KRFacade, check the namespace-access tag setting in
    orion-application.xml for details
         at
    com.evermind.server.rmi.RMIClientConnection.handleLookupRe
    sponse(RMIClientConnection.java:819)
         at
    com.evermind.server.rmi.RMIClientConnection.handleOrmiComm
    andResponse(RMIClientConnection.java:283)
    ....I can see from the console that the user was successfully authenticated :-
    20/04/2007 00:55:37 kr.security.KnowRushLoginModule validate
    WARNING: [KnowRushLoginModule] User matt.shannon authenticated
    And that user is granted both the Admin, and Member roles.
    The test servlet using basic authentication correctly detects the user and roles perfectly...
      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
        throws ServletException, IOException
        LOGGER.log(Level.INFO,LOGPREFIX +"doGet called");
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>ExampleServlet</title></head>");
        out.println("<body>");
        out.println("<p>The servlet has received a GET. This is the reply.</p>");
        out.println("<br> getRemoteUser = " + request.getRemoteUser());
        out.println("<br> getUserPrincipal = " + request.getUserPrincipal());
        out.println("<br> isUserInRole('sr_Admin') = "+request.isUserInRole("sr_Admin"));
        out.println("<br> isUserInRole('sr_Memeber') = "+request.isUserInRole("sr_Member"));Anyone got any ideas what could be going wrong?
    cheers
    Matt.
    Message was edited by:
    mshannon

    Thanks for the response. I checked out your blog and tried your suggestions. I'm sure it works well in standalone OC4J, but i was still unable to get it to function correctly from JDeveloper embedded.
    Did you ever get the code working directly from JDeveloper?
    Your custom code essentially seems to be the equivalent of a grant within system-jazn-data.xml.
    For example, the following grant to a custom jaas role (JAAS_ADMIN) that gets added by my custom login module gives them rmi login access :-
         <grant>
              <grantee>
                   <principals>
                        <principal>
                             <realm-name>jazn.com</realm-name>
                             <type>role</type>
                             <class>kr.security.principals.KRRolePrincipal</class>
                             <name>JAAS_Admin</name>
                        </principal>
                   </principals>
              </grantee>
              <permissions>
                   <permission>
                        <class>com.evermind.server.rmi.RMIPermission</class>
                        <name>login</name>
                   </permission>
              </permissions>
         </grant>If I add the following to orion-application.xml
      <!-- Granting login permission to users accessing this EJB. -->
      <namespace-access>
        <read-access>
          <namespace-resource root="">
            <security-role-mapping>
              <group name="JAAS_Admin"></group>
            </security-role-mapping>
          </namespace-resource>
        </read-access>Running a standalone client against the embedded jdev oc4j server gives the namespace-access error.
    I tried out your code by essentially creating a static reference to a singleton class that does the role lookup/provisioning with rmi login grant :-
    From custom login module :-
      private static KRSecurityHelper singleton = new KRSecurityHelper();
      protected Principal[] m_Principals;
        Vector v = new Vector();
          v.add(singleton.getCustomRmiConnectRole());
          // set principals in LoginModule
          m_Principals=(Principal[]) v.toArray(new Principal[v.size()]);
    Singleton class :-
    package kr.security;
    import com.evermind.server.rmi.RMIPermission;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import oracle.security.jazn.JAZNConfig;
    import oracle.security.jazn.policy.Grantee;
    import oracle.security.jazn.realm.Realm;
    import oracle.security.jazn.realm.RealmManager;
    import oracle.security.jazn.realm.RealmRole;
    import oracle.security.jazn.realm.RoleManager;
    import oracle.security.jazn.policy.JAZNPolicy;
    import oracle.security.jazn.JAZNException;
    public class KRSecurityHelper
      private static final Logger LOGGER = Logger.getLogger("kr.security");
      private static final String LOGPREFIX = "[KRSecurityHelper] ";
      public static String CUSTOM_RMI_CONNECT_ROLE = "remote_connect";
      private RealmRole m_Role = null;
      public KRSecurityHelper()
        LOGGER.log(Level.FINEST,LOGPREFIX +"calling JAZNConfig.getJAZNConfig");
        JAZNConfig jc = JAZNConfig.getJAZNConfig();
        LOGGER.log(Level.FINEST,LOGPREFIX +"calling jc.getRealmManager");
        RealmManager realmMgr = jc.getRealmManager();
        try
          // Get the default realm .. e.g. jazn.com
          LOGGER.log(Level.FINEST,LOGPREFIX +"calling jc.getGetDefaultRealm");
          Realm r = realmMgr.getRealm(jc.getDefaultRealm());
          LOGGER.log(Level.INFO,LOGPREFIX +"default realm: "+r.getName());
          // Access the role manager for the remote connection role
          LOGGER.log(Level.FINEST,
            LOGPREFIX +"calling default_realm.getRoleManager");
          RoleManager roleMgr = r.getRoleManager();
          LOGGER.log(Level.INFO,LOGPREFIX +"looking up custom role '"
            CUSTOM_RMI_CONNECT_ROLE "'");
          RealmRole rmiConnectRole = roleMgr.getRole(CUSTOM_RMI_CONNECT_ROLE);
          if (rmiConnectRole == null)
            LOGGER.log(Level.INFO,LOGPREFIX +"role does not exist, create it...");
            rmiConnectRole = roleMgr.createRole(CUSTOM_RMI_CONNECT_ROLE);
            LOGGER.log(Level.FINEST,LOGPREFIX +"constructing new grantee");
            Grantee gtee = new Grantee(rmiConnectRole);
            LOGGER.log(Level.FINEST,LOGPREFIX +"constructing login rmi permission");
            RMIPermission login = new RMIPermission("login");
            LOGGER.log(Level.FINEST,
              LOGPREFIX +"constructing subject.propagation rmi permission");
            RMIPermission subjectprop = new RMIPermission("subject.propagation");
            // make policy changes
            LOGGER.log(Level.FINEST,LOGPREFIX +"calling jc.getPolicy");
            JAZNPolicy policy = jc.getPolicy();
            if (policy != null)
              LOGGER.log(Level.INFO, LOGPREFIX
                + "add to policy grant for RMI 'login' permission to "
                + CUSTOM_RMI_CONNECT_ROLE);
              policy.grant(gtee, login);
              LOGGER.log(Level.INFO, LOGPREFIX
                + "add to policy grant for RMI 'subject.propagation' permission to "
                + CUSTOM_RMI_CONNECT_ROLE);
              policy.grant(gtee, subjectprop);
              // m_Role = rmiConnectRole;
              m_Role = roleMgr.getRole(CUSTOM_RMI_CONNECT_ROLE);
              LOGGER.log(Level.INFO, LOGPREFIX
                + m_Role.getName() + ":" + m_Role.getFullName() + ":" + m_Role.getFullName());
            else
              LOGGER.log(Level.WARNING,LOGPREFIX +"Cannot find jazn policy!");
          else
            LOGGER.log(Level.INFO,LOGPREFIX +"custom role already exists");
            m_Role = rmiConnectRole;
        catch (JAZNException e)
          LOGGER.log(Level.WARNING,
            LOGPREFIX +"Cannot configure JAZN for remote connections");
      public RealmRole getCustomRmiConnectRole()
        return m_Role;
    }Using the code approach and switching application.xml across so that namespace access is for the group remote_connect, I get the following error from my bean :-
    INFO: Login permission not granted for current-workspace-app (test.user)
    Thus, the login permission that I'm adding through the custom remote_connect role does not seem to work. Even if it did, i'm pretty sure I would still get that namespace error.
    This has been such a frustrating process. All the custom login module samples using embedded JDeveloper show simple j2ee servlet protection based on settings in web.xml.
    There are no samples showing jdeveloper embedded oc4j using ejb with custom login modules.
    Hopefully the oc4j jdev gurus like Frank can write a paper that demonstrates this.
    Matt.

Maybe you are looking for

  • BW - additional field in infoset

    Hi all , I used data source with infoset and I added additional field into infoset . But additional fields did not come to the data source selection screen ( Field list screen ).  Is there a way to do this ? Can anyone help me ? Thnks a lot ..

  • How to call jsp in PLSQL code (to upload a file in IFS)

    Hello, We develop our PORTAL (9.0.2) with PL/SQL way. We want to make a form to upload file in IFS. We create a form like that : htp.formOpen(cmethod =>'post',      cenctype => 'multipart/form-data',      curl => '/pls/ptlcollab/ptlcollab.GestionDoc_

  • Conforming to 29.97 NON DROP

    hey all! I have a movie that is 29.97 DF that I would like to conform to 29.97 NDF before I bring it into FCP. how do I do this? thx!

  • Insert a label or button in landscapemode

    when i insert a button in landscapmode, its rotated about 90 degrees. how can i change this ?

  • Homesite not found in DW8

    I just installed DW 8 free trial and cannot see Homesite + in the Edit menu although the help files say it is installed with DW8. Where can I found it?