Using Dynamic JDBC Credentials with jazn security (web.xml) in BC

I have followed the document “How To Support Dynamic JDBC Credentials” http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html to connect to the database using Business Components, as the user who logs in the application. (Proxy)
The only matter is that as I could see, I cannot use the application server integrated security (with roles) to protect the web resources.
The main objective is to protect the web resources using Declarative J2EE authentication and authorization using the Data Base users (and roles). I have implemented the solution for the first part (authentication) using DBLoginModule (DBSystemLoginModule) from Frank Nimphius and Duncan Mills, it’s working OK, but I need the second part; how to use the user that is logged in as the PROXY user of the BC connection.
Using the DBLoginModule, and the “How To Support Dynamic JDBC Credentials” separates works fine, but I can’t make them work together.

Frank, Thanks a lot for your quick answer.
"Maybe you should look at using database proxy users with ADF BC so you can use the J2EE authenticated user principal as the database schema to connect through. I am working on documenting this approach, which however needs some more time of writing and testing."
Yes, that's exactly what I need!!!
Can you give me some tips about how to do that.. Do you have any idea of when you will finish that document?.
By the way, I'm using FORM authentication, but I don't know how to modify what’s in the “How To Support Dynamic JDBC Credentials” document, to use the J2EE authenticated user principal as the database schema to connect through.
One of the problems is that when using this approach, I cannot get the J2EE security to redirect to the login page...
Any help would be really appreciated

Similar Messages

  • REDIRECT JDBC URL WHEN USING DYNAMIC JDBC CREDENTIALS SO NOT HARDCODED

    I have taken over an application that uses row-level security and ADF (using
    dynamic JDBC Credentials). I have been able to set the internal_connection to
    a JDBCDatasource, but cannot set the Connection Type in the Oracle Business
    Component Configuration to a JDBCDatasource. When I do, I receive errors that
    tables are not found. When I set the value back to a JDBC URL, everything
    works fine again.
    I am looking for a solution where the userid and password are not hardcoded in
    the BC4J.xcfg or a way to redirect this information, as we change our system
    passwords every nighty days. Otherwise, I will have to redeploy the
    application every nighty days.
    I did not create this application, but I am sure that you could simply follow
    the "How to Support Dynamic JDBC Credentials" article. From that point, you
    will probably be where I am, where I have the internal_connection set to a
    JDBCDataSource and working properly, but cannot set the Connection Type to
    anything where the userid and password will not be hardcoded or cause failure.
    I wanted to let you know that I have
    found the updated How to Support Dynamic JDBC Credentials
    (http://www.oracle.com/technology/products/jdev/howtos/bc4j/howto_dynamic_jdbc.h
    tml) and was going to run through the "Advanced: Supporting Dynamic JDBC URLs",
    but once I was done keying in
    env.remove(ConnectionStrategy.DB_CONNECT_STRING_PROPERTY); I received a
    depreciation message on the DB_CONNECT_STRING_PROPERTY. (Note: I am coding in
    JDeveloper 10.1.3, so this may be depreciated as of then, but the ADF Libraries
    for JDeveloper 10.1.3 are on our Oracle 10gAS 10.1.2 server.)
    I thought maybe this would resolve my issue, but I can't be sure as the
    deprecation message leads me to believe that this solution may not be viable in
    the future.
    UPDATE
    =======
    The article you are referencing is definitely an older version.
    There is a newer article for 10g at:
    http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html
    Please see if that helps.
    I have already reviewed this article.
    In fact, I have reviewed many versions of this document. I have not seen one
    created yet for 10.1.3 though (especially without JSF as our 10.1.2 AS server
    will not support it). I need to find an example or documentation that shows
    how we can keep from having the JDBC URL stored in the BC4J.xcfg or a way to
    use dynamic JDBC credentials with a JDBCDataSource. We do not want to store
    the userid and password in the application, rather, we would like to setup
    something that can be configurable from the application server.
    I think we need to use the dynamic JDBC credentials because we are using the
    row-level security, where we setup a database context for the user and only
    allow certain records of a database table to be returned to the browser based
    on that context.
    Might there be a way to still use the JDBCDataSource?

    I understand that the user provides the userid and password and that these values are setup using the Configuration class.
    However, when I am to deploy the ADF Business Module with my application, I have to specify either a JDBC URL or a JDBC DataSource in the Oracle Business Component Configuration.
    When I use JDBC DataSource, the code does not work properly, almost like the user's credentials are not used for the connection (I get errors like table or view does not exist).
    When I use the JDBC URL, the bc4j.xcfg stores a reference in the JDBCName attribute to a ConnectionDefinition in the same file. It is in this tag of the bc4j.xcfg where the userid, sid, and password (encrypted) is stored and used when retrieving the initial context of the ADF business components.
    It is these values that I want to have stored else where so that the application does not have to be redeployed in order for the password (or sid, or other connection information) to be change.

  • Dynamic JDBC Credentials and using ADF Region ERROR

    Hi,
    I used solution by Steve Muench, Dynamic JDBC Credentials (for ADF Faces Rich Client)
    (129.     11g Dynamic JDBC Credentials for Model 1, Struts, Trinidad, and ADF Faces Rich Client 11.1.1.0.0 06-AUG-2008), but it works not correct in case of using ADF Dynamic Region (or simply ADF Region).
    I have added in ViewControllerJSFRichFaces a page (main.jspx) including ADF Dynamic Region consisting of 2 simple tasks flows. Action of the Login button, if login and password are correct, redirect to main.jspx
    There are to cases.
    1) Login and password are correct:
    In this case all work fine.
    2) Login and password are not correct:
    It does not work. redirect to login.jspx does not occur as it is expected, but the following page (main.jspx) is loaded, herewith thrown exception: oracle.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
    I would be very grateful you for help.

    Hi,
    hard to say from your description if this is a bug or an implementation problem. Note that errors that occur in regions are not handled by the exception handler of the the parent page and require special handling within the region. In other words, if the problem is in the region then it needs to be handled in here. I think the right strategy here is to not show the region until a valid connection exist. Is the login performed from the parent page ?
    Frank

  • Using SQL Server credentials with Secure Store Target Application for Data Connection in Dashboard Designer

    [Using SharePoint 2013 Enterprise SP1]
    I would like to use SQL Server credentials in a Secure Store Target Application, and
    this page makes it look like it's possible but when I attempt to use the new Target Application ID as authentication for a Data Connection in Dashboard Designer, I get a generic "Unable to access data source" with no error logged in SQL Server
    logs.
    I am able to use a Target Application with AD credentials to access the SQL db without a problem. Suggestions?

    Hi,
    1. Make sure that the credential is set to
    Secure Store Target Application. Navigate to the Central Administration. Click on the
    Application Management. Click on the Manage Service Applications. Click on the
    Secure Store Service Application. Select the application ID and from the ECB menu click on the
    Set Credentials. Enter the Credential Owner, Windows User Name and the
    Windows Password.
    2. Make sure that in the Dashboard Designer “Use a stored account” is selected in the “Authentication” and the proper application ID is mentioned.
    Please refer to the link below for more information:
    http://www.c-sharpcorner.com/Blogs/14527/unable-to-access-data-source-the-secure-store-target-applic.aspx
    Regards,
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected] .
    Rebecca Tu
    TechNet Community Support

  • For those who used the solution by Steve Muench,Dynamic JDBC Credentials

    hi every body
    is there any body used the solution by Steve Muench, Dynamic JDBC Credentials .
    thanks
    Yaser
    Edited by: 842127 on Mar 13, 2011 9:24 AM

    Hi,
    in the login page i have a button to make login which work perfect
    How can you say ?
    Whenever i click any control in the login page i see this message invalid username/passowrd . i do not why i face this problem ?I have tried changing the username,password and database using http://www.oracle.com/technetwork/developer-tools/jdev/dynamicjdbchowto-101755.html which works perfect.
    refer my thread
    Changing the database for a particular user session
    Regards,
    Santosh
    Edited by: Santosh Vaza on Mar 17, 2011 11:29 AM

  • Dynamic JDBC Credentials error

    I create my login page as article
    "How To Support Dynamic JDBC Credentials" (http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html)
    but if i run application i get this error
    500 Internal Server Error
    java.lang.RuntimeException: Model binding context not initialized     at oracle.adf.controller.lifecycle.LifecycleContext.initialize(LifecycleContext.java:113)     at oracle.adf.controller.lifecycle.LifecycleContext.initialize(LifecycleContext.java:77)     at oracle.adf.controller.struts.actions.DataActionContext.initialize(DataActionContext.java:48)     at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:150)     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)     at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:509)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)     at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:663)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:222)     at loginapp.view.DynamicJDBCBindingFilter.doFilter(DynamicJDBCBindingFilter.java:32)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)     at java.lang.Thread.run(Thread.java:534)
    whats wrong?
    JDeveloper version 10.1.2.1.0 (build 1913)

    Have you performed Step 6 from topic "Create the application":
    "Add databound controls to at least one page, other than the login page (of course, you should not attempt to add databound controls to the login page). This can be done using the Data Control Palette; for more information, see the JDeveloper online help."
    If you missed it, this could lead to the errors you have.
    Regards,
    Didier.

  • Questions about example "Dynamic JDBC Credentials for Model 1 and Model 2"

    Hello,
    i am trying to set up dynamic JDBC authentication in my ADF BC application - i want that it'll work like in Forms - a dababase user with the proper priveleges can log into my ADF BC application using his database login and password, and work with application.
    I've read the paper "How To Support Dynamic JDBC Credentials" at
    http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html
    and test the very useful example, created by Steve Muench, which i've got from
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
    The example works, but when i'm transfer its realisation in my application - it doesnt work the right way. The problems is the following:
    1. I can connect and work successfully only under the owner of the schema - the username and password of which i've wrote in the "jbo.server.internal_connection" string of the AM configuration.
    2. When i'm connecting under other users, which have all the rights to work with the db objects, used by application, i got the main page with the "Access Denied" message - as i have no priveleges to the tables.
    3. The big surprise is that if i am entering the fake username and password - the random letter combination - then i am getting the same behavior as in p.2 - the main page with the "Access Denied" message!
    And the last question is:
    4. Is it possible to set up the dynamic jdbc authentication using the build-in JDeveloper functions - i mean not to use that additional code, not override the ADF Binding Filter, and so on, but set up the similar behaviour (users log in using their db names and passwords) in several minutes following the standart documentation?
    Thanks in advance!

    One more question:
    I have 2 independent Application Modules in my application - to make the 2 transactions independent one form another, when working with different parts of project - and while using dinamic JDBC authentification, the user connects only in the first AM under the username he's entered, but the 2nd AM works under the predefined earlier (during development) connection for that AM.
    How can i make the 2nd AM to be connected under the logging in user (same as the 1rst AM)?

  • Dynamic JDBC credentials example application from Steve Muench

    Apologies for this newbie question...but I'm trying to understand the Dynamic JDBC credentials example application from Steve Muench:
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
    I think I understand most of it but the one bit I dont understand is why it customizes the ADF Page Lifecycle (DynamicJDBCADFPhaseListener, DynamicJDBCPageLifecycle, DynamicJDBCPageLifecycleContext).
    Can anyone explain to an ex-forms developer why this code is there?
    I'm also trying to work out a way for the session to be invalidated when the user logins again
    e.g. a user logins, he doesnt use the logout function but uses the back button to go back to the login page. when he logs in with another set of credentials, would a new session start or as i supsect, it would use the original login credentials?
    Thanks

    You can ignore those three classes in the example. They are not related to the dynamic credential solution, and must have been left over from some other example I evolved into what you see. Sorry to have cluttered up the implementation with stuff that isn't really contributing to the actual solution. DOH!

  • Workaround for using Oracle JDBC extension with WLS pooling

    Reading the newsgroup I saw that many of us encountered the problems
    with ClassCastException when tried to use Oracle JDBC extension
    with WLS pooling. I also had.
    In this case BEA recommends to use dangerous
    method getVendorConnection() which exposes
    the physical connection object to your code.
    Yes it's really dangerous because of unsafe usage may breaks
    WLS pooled connection(s).
    Moreover, this practice will make your JDBC code
    unportable (your JDBC code in addition to Oracle dependence
    became Weblogic dependent):
    void doSmth() {
    Connection con = ...;
    Connection vCon = ((WLConnection)con).getVendorConnection();
    // + mess of usage con in one places and vCon in others
    // (where Oracle extensions are needed)
    // !Don't forget to don't close vCon!
    Sux.
    I found the workaround.
    Introduction
    ============
    Yes the real cause of ClassCastException is that
    in depth of Oracle driver the casting
    to class oracle.jdbc.driver.OracleConnection
    (not to interface oracle.jdbc.OracleConnection)
    is performed.
    Someone can say that this is bug or pure desing.
    Weblogic pooled connection provide dynamic
    implementation for all public interfaces
    which real physical (wrapped) connection object implements.
    Great feature!
    But I guess that all interface methods implemented
    by simple call-delegation to physical (wrapped) connection object.
    In case of oracle.jdbc.OracleConnection interface
    this approach doesn't work for at least one its method:
    public OracleConnection unwrap()
    WLS pooled connection shoudn't implement this method by
    delegation to physical connection object BUT should
    return physical connection object itself!
    // Wrong implementation of unwrap()
    // delegation is used
    public OracleConnection unwrap() {
    return physicalConnection.unwrap();
    // Right implementation of unwrap()
    // physical connection returned
    public OracleConnection unwrap() {
    return physicalConnection;
    Workaround
    ==========
    1. Develop your own OracleConnection wrapper class:
    import oracle.jdbc.OracleConnection;
    import weblogic.jdbc.extensions.WLConnection;
    public class MyOracleConnectionImpl implements OracleConnection {
    private OracleConnection con;
    public MyOracleConnectionImpl(OracleConnection connection)
    throws SQLException
    this.con = connection;
    public OracleConnection unwrap() {
    return (OracleConnection)
    ((WLConnection)con).getVendorConnection();
    /* Implement all other methods by delegation to con object */
    2. Don't get Connections directly from DataSource --
    develop your own simple (may be static) utility
    class which retrives Connections from dataSource
    and returns them wrapped into your MyOracleConnectionImpl
    to your code from some method:
    puclic abstract class MyConnectionSource {
    public static Connection getConnection() {
    Connection con = // get it from DataSource
    return new MyOracleConnectionImpl((OracleConnection)con);
    3. Add attribute RemoveInfectedConnectionsEnabled="false"
    to definition of your JDBCConnectionPool within config.xml
    You may do it because of you `safely` use vendorConnection --
    you don't expose it to application code.
    4. Enjoy the Oracle JDBC extensions in your code!
    Example:
    Connection con = MyConnectionSource.getConnection;
    ArrayDescriptor add =
    ArrayDescriptor.createDescriptor("your_type", con);
    Hope it helps to someone.
    Best regards,
    Eugene Voytitsky

    Hello Eugene Voytitsky,
    Thanks Eugene Voytitsky for your idea
    I have tried the solution suggested by You, but it did not work.
    It still throws ClassCastException.
    I am sorry for posting the whole code of two classes below.
    I did this to give you more clarity.
    I am also indicating the place where the exception was thrown..
    Please let me know if I am doing something wrong.
    OracleConnection Wrapper class
    package ejbTesting;
    // sql imports
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.SQLWarning;
    import java.sql.Statement;
    // util imports
    import java.util.Map;
    import java.util.Properties;
    // imports from Oracle Driver Classes
    import oracle.jdbc.OracleConnection;
    import oracle.jdbc.OracleOCIFailover;
    import oracle.jdbc.OracleSavepoint;
    // import from Weblogic extensions
    import weblogic.jdbc.extensions.WLConnection;
    public class WeblogicConnectionWrapper implements OracleConnection
         // oracle connection object
         private OracleConnection connection;
         public WeblogicConnectionWrapper (OracleConnection orclConnection)
              try
                   this.connection = orclConnection;
              catch(Exception unexpected )
                   unexpected.printStackTrace();
         public OracleConnection unwrap()
              try
              // The datasource returns a weblogic.jdbc.pool.Connection
              // This needs to be type casted to weblogic.jdbc.extensions.WLConnection
              // Only this weblogic.jdbc.extensions.WLConnection CAN BE type casted
              // to OracleConnection
         return (OracleConnection) ((WLConnection) connection).getVendorConnection();
         catch(Exception sqlException )
              sqlException.printStackTrace ();
              return null;
         /* Implement all other methods by delegation to connection object */      
    public Connection _getPC()
    return connection._getPC();
    public void archive(int i, int j, String s)
    throws SQLException
    connection.archive(i, j, s);
    public void assertComplete()
    throws SQLException
    connection.assertComplete();
    public void clearWarnings()
    throws SQLException
    connection.clearWarnings();
    public void close()
    throws SQLException
    connection.close();
    public void commit()
    throws SQLException
    connection.commit();
    public Statement createStatement()
    throws SQLException
    return connection.createStatement();
    public Statement createStatement(int i, int j)
    throws SQLException
    return connection.createStatement(i, j);
    public boolean getAutoClose()
    throws SQLException
    return connection.getAutoClose();
    public boolean getAutoCommit()
    throws SQLException
    return connection.getAutoCommit();
    public CallableStatement getCallWithKey(String s)
    throws SQLException
    return connection.getCallWithKey(s);
    public String getCatalog()
    throws SQLException
    return connection.getCatalog();
    public boolean getCreateStatementAsRefCursor()
    return connection.getCreateStatementAsRefCursor();
    public int getDefaultExecuteBatch()
    return connection.getDefaultExecuteBatch();
    public int getDefaultRowPrefetch()
    return connection.getDefaultRowPrefetch();
    public Object getDescriptor(String s)
    return connection.getDescriptor(s);
    public boolean getExplicitCachingEnabled()
    throws SQLException
    return connection.getExplicitCachingEnabled();
    public boolean getImplicitCachingEnabled()
    throws SQLException
    return connection.getImplicitCachingEnabled();
    public boolean getIncludeSynonyms()
    return connection.getIncludeSynonyms();
    public Object getJavaObject(String s)
    throws SQLException
    return connection.getJavaObject(s);
    public DatabaseMetaData getMetaData()
    throws SQLException
    return connection.getMetaData();
    public Properties getProperties()
    return connection.getProperties();
    public boolean getRemarksReporting()
    return connection.getRemarksReporting();
    public boolean getRestrictGetTables()
    return connection.getRestrictGetTables();
    public String getSQLType(Object obj)
    throws SQLException
    return connection.getSQLType(obj);
    public String getSessionTimeZone()
    return connection.getSessionTimeZone();
    public int getStatementCacheSize()
    throws SQLException
    return connection.getStatementCacheSize();
    public PreparedStatement getStatementWithKey(String s)
    throws SQLException
    return connection.getStatementWithKey(s);
    public int getStmtCacheSize()
    return connection.getStmtCacheSize();
    public short getStructAttrCsId()
    throws SQLException
    return connection.getStructAttrCsId();
    public boolean getSynchronousMode()
    return connection.getSynchronousMode();
    public int getTransactionIsolation()
    throws SQLException
    return connection.getTransactionIsolation();
    public Map getTypeMap()
    throws SQLException
    return connection.getTypeMap();
    public String getUserName()
    throws SQLException
    return connection.getUserName();
    public boolean getUsingXAFlag()
    return connection.getUsingXAFlag();
    public SQLWarning getWarnings()
    throws SQLException
    return connection.getWarnings();
    public boolean getXAErrorFlag()
    return connection.getXAErrorFlag();
    public boolean isClosed()
    throws SQLException
    return connection.isClosed();
    public boolean isLogicalConnection()
    return connection.isLogicalConnection();
    public boolean isReadOnly()
    throws SQLException
    return connection.isReadOnly();
    public String nativeSQL(String s)
    throws SQLException
    return connection.nativeSQL(s);
    public Object openJoltConnection(String s, short word0, short word1)
    return connection.openJoltConnection(s, word0, word1);
    public void oracleReleaseSavepoint(OracleSavepoint oraclesavepoint)
    throws SQLException
    connection.oracleReleaseSavepoint(oraclesavepoint);
    public void oracleRollback(OracleSavepoint oraclesavepoint)
    throws SQLException
    connection.oracleRollback(oraclesavepoint);
    public OracleSavepoint oracleSetSavepoint()
    throws SQLException
    return connection.oracleSetSavepoint();
    public OracleSavepoint oracleSetSavepoint(String s)
    throws SQLException
    return connection.oracleSetSavepoint(s);
    public int pingDatabase(int i)
    throws SQLException
    return connection.pingDatabase(i);
    public CallableStatement prepareCall(String s)
    throws SQLException
    return connection.prepareCall(s);
    public CallableStatement prepareCall(String s, int i, int j)
    throws SQLException
    return connection.prepareCall(s, i, j);
    public CallableStatement prepareCallWithKey(String s)
    throws SQLException
    return connection.prepareCallWithKey(s);
    public PreparedStatement prepareStatement(String s)
    throws SQLException
    return connection.prepareStatement(s);
    public PreparedStatement prepareStatement(String s, int i, int j)
    throws SQLException
    return connection.prepareStatement(s, i, j);
    public PreparedStatement prepareStatementWithKey(String s)
    throws SQLException
    return connection.prepareStatementWithKey(s);
    public void purgeExplicitCache()
    throws SQLException
    connection.purgeExplicitCache();
    public void purgeImplicitCache()
    throws SQLException
    connection.purgeImplicitCache();
    public void putDescriptor(String s, Object obj)
    throws SQLException
    connection.putDescriptor(s, obj);
    public void registerApiDescription(String s, short word0, short word1, String
    s1)
    connection.registerApiDescription(s, word0, word1, s1);
    public void registerSQLType(String s, Class class1)
    throws SQLException
    connection.registerSQLType(s, class1);
    public void registerSQLType(String s, String s1)
    throws SQLException
    connection.registerSQLType(s, s1);
    public void registerTAFCallback(OracleOCIFailover oracleocifailover, Object
    obj)
    throws SQLException
    connection.registerTAFCallback(oracleocifailover, obj);
    public void rollback()
    throws SQLException
    connection.rollback();
    public void setAutoClose(boolean flag)
    throws SQLException
    connection.setAutoClose(flag);
    public void setAutoCommit(boolean flag)
    throws SQLException
    connection.setAutoCommit(flag);
    public void setCatalog(String s)
    throws SQLException
    connection.setCatalog(s);
    public void setCreateStatementAsRefCursor(boolean flag)
    connection.setCreateStatementAsRefCursor(flag);
    public void setDefaultExecuteBatch(int i)
    throws SQLException
    connection.setDefaultExecuteBatch(i);
    public void setDefaultRowPrefetch(int i)
    throws SQLException
    connection.setDefaultRowPrefetch(i);
    public void setExplicitCachingEnabled(boolean flag)
    throws SQLException
    connection.setExplicitCachingEnabled(flag);
    public void setImplicitCachingEnabled(boolean flag)
    throws SQLException
    connection.setImplicitCachingEnabled(flag);
    public void setIncludeSynonyms(boolean flag)
    connection.setIncludeSynonyms(flag);
    public void setReadOnly(boolean flag)
    throws SQLException
    connection.setReadOnly(flag);
    public void setRemarksReporting(boolean flag)
    connection.setRemarksReporting(flag);
    public void setRestrictGetTables(boolean flag)
    connection.setRestrictGetTables(flag);
    public void setSessionTimeZone(String s)
    throws SQLException
    connection.setSessionTimeZone(s);
    public void setStatementCacheSize(int i)
    throws SQLException
    connection.setStatementCacheSize(i);
    public void setStmtCacheSize(int i)
    throws SQLException
    connection.setStmtCacheSize(i);
    public void setStmtCacheSize(int i, boolean flag)
    throws SQLException
    connection.setStmtCacheSize(i, flag);
    public void setSynchronousMode(boolean flag)
    connection.setSynchronousMode(flag);
    public void setTransactionIsolation(int i)
    throws SQLException
    connection.setTransactionIsolation(i);
    public void setTypeMap(Map map)
    throws SQLException
    connection.setTypeMap(map);
    public void setUsingXAFlag(boolean flag)
    connection.setUsingXAFlag(flag);
    public void setWrapper(OracleConnection oracleconnection)
    connection.setWrapper(oracleconnection);
    public void setXAErrorFlag(boolean flag)
    connection.setXAErrorFlag(flag);
    public void shutdown(int i)
    throws SQLException
    connection.shutdown(i);
    public void startup(String s, int i)
    throws SQLException
    connection.startup(s, i);
    Util class to get Wrapped Connections from
    datasource
    package ejbTesting;
    // j2ee imports
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    // sql imports
    import java.sql.Connection;
    // imports from Oracle Driver Classes
    import oracle.jdbc.OracleConnection;
    * Wrapper class for the DataSource Connection from Weblogic pool
    public class DataSourceConnectionWrapper
         // datasource variable
         private static transient DataSource datasource = null;
         private static String dbName = "jdbc/workbench";
    * Method that returns the database connection
         public static Connection getConnection()
              try
                   // initialsing the datasource object
                   initialiseDataSource ();
                   // Getting a connection from the datasource
                   Connection con = datasource.getConnection( );
                   // wrapping it custom wrapper class and
                   // returning the connection object
                   return new WeblogicConnectionWrapper((OracleConnection)con);
              catch(Exception exception )
                   exception.printStackTrace();
                   return null;
         private static void initialiseDataSource( ) throws Exception
    if ( datasource == null )
    try
    InitialContext ic = new InitialContext( );
    datasource = (DataSource) ic.lookup( dbName );
    catch (Exception ne )
    throw new Exception( "NamingException while looking up DataSource with
    JNDI name" +
    dbName + ": \n" + ne.getMessage( ) );
    Exception Stack Trace
    The line 46 in DataSourceConnectionWrapper
    corresponds to
    return new WeblogicConnectionWrapper((OracleConnection)con);
    Which I feel is logical as the connection which we get from Weblogic
    datasource cannot be type casted to OracleConnection
    java.lang.ClassCastException: weblogic.jdbc.pool.Connection
    at ejbTesting.DataSourceConnectionWrapper.getConnection(DataSourceConnectionWrapper.java:46)

  • Dynamic JDBC credentials don't work

    Hello,
    I'm using OC4J 9.0.3 (build 020927.1699) for deploying BC4J components as EJB session beans.
    All my efforts to activate dynamic JDBC credentials are still without success.
    Client (JDev9032) implements EnvInfoProvider and returns new properties as described in the JBO-javadoc. Tracing oc4j shows that required properties are passed from the client but ignored as unknown:
    [332] (0) Copying unknown Client property (password='tiger') to session
    [334] (0) Copying unknown Client property (user='scott') to session
    - and connection is made on behalf of default user from data-source config.
    Is it a bug or I misunderstood something ?
    Thanks
    Arkady

    Please discard.
    The reason is in JDev9032, see BUG: JDBC dynamic credentials do not work

  • Using a Filter on OC4J with JAZN security enabled using LDAP

    I have a LDAP security in place on OC4J. I have to create a filter which uses the HttpRequestWrapper to do some preprocessing with the request parameters. I have all the code in place along and the Filter which uses HttpRequestWrapper. Now the problem is that the OC4J gives an error -
    Servlet error
    javax.servlet.ServletException: JAAS-OC4J: JAZNFilter.doFilter - unable to find the current servlet
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
    at com.myapp.filter.RequestFilter.doFilter(RequestFilter.java:429)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:617)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:794)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.2.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
    at java.lang.Thread.run(Thread.java:534)
    The error happens while executing the following line:
    chain.doFilter(new MyHttpServletRequestWrapper((HttpServletRequest) request ), response);
    The constructor call MyHttpServletRequestWrapper is successful. Something seems to be wrong as it appears the server is not able to locate the path where to forward to from within the Filter.
    If I execute the same code without the JAZN LDAP security everything works fine.
    Can anybody please provide some help to resolve this issue?

    Yeah, it's a known problem - it caught me out as well.
    The xml parser installed with OJSP is more strict than the one
    with Orion. The order of the parameters becomes important. The
    general solution is to check the dtd listed at the top of the
    xml file for the parameter order and make sure any you specify
    in the xml file are in this order.
    Your specific case: the order of session-config and
    welcome-file-list should be reveresed, ie session-config should
    come first in the web.xml file.
    Jonny

  • JDev EA1 Error with JAZN/Security Roles/Authentication

    I have a current JSF application created under JDev 10.1.3 Preview which runs fine, but under JDev EA1 it crashes.
    The application has a JAZN definition with a realm and user defined. The user is also tied to a security role.
    In the web.xml I have a security role defined and security constraints. I also have the security-role-mappings in the orion-application.xml for deployment which uses OID to authenticate.
    This all works fine in JDev 10.1.3 preview.
    When I run the application in JDev EA1, the login dialog does not appear and the application crashes because it can't authenticate who is using the application. I have deleted and recreated the Jazn user and security roles under EA1.
    I have noticed that JDev is now reporting the "<security-constraint>" tag in web.xml is an error now.
    Any ideas on what's wrong?
    Thanks

    We're using SSO, so we haven't written our own login handler. The orion-application.xml has the "<jazn-web-app auth-method="SSO"/>" tag in it. We let SSO handle the login. You can write your own login handler if you wanted to. I think there's several threads about doing it. We wanted to try and use SSO and not have to write the piece to do the login.
    orion-application.xml:
    <jazn provider="LDAP"
    location="ldap://my.company.com:<port number>"
    default-realm="my_realm_here">
    <jazn-web-app auth-method="SSO"/>
    </jazn>
    The way we approached it, we have a User and Visit object. The User object just holds some data:
    public class User implements Serializable
    private String userid;
    private String name;
    private String email;
    private Date loginTime;
    The faces-config.xml is like this:
    <!--========User Bean=========-->
    <managed-bean>
    <managed-bean-name>user</managed-bean-name>
    <managed-bean-class>com.mycompany.User</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
    <property-name>queryService</property-name>
    <value>#{queryservicebean}</value>
    </managed-property>
    </managed-bean>
    We're using Spring to inject the "queryservicebean". You may not need this section. We're having to grab data from a database table. So you can probably skip that "<managed-property>" section.
    The section I think you are really asking about is the ViewHandler. You probably need to look at extending the ViewHandler to populate your user object.
    public class AuthenticatingViewHandler extends ViewHandler{...}
    You will probably need to look at adding code in the createView and restoreView methods.
    Something like:
    public class AuthenticatingViewHandler extends ViewHandler
    private final ViewHandler _base;
    public AuthenticatingAurepViewHandler(ViewHandler base)
    _base = base;
    public UIViewRoot createView(FacesContext facesContext, String viewId)
    viewId = loadUser(facesContext,viewId);
    return _base.createView(facesContext, viewId);
    } //END createView(FacesContext facesContext, String viewId)
    public UIViewRoot restoreView(FacesContext facesContext, String viewId)
    viewId = loadUser(facesContext,viewId);
    return _base.restoreView(facesContext,viewId);
    } //END restoreView(FacesContext facesContext, String viewId)
    --Then "loadUser" would populate your User object:
    public String loadUser(FacesContext facesContext, String viewId)
    String userId = facesContext.getExternalContext().getRemoteUser();
    User user = (User) JSFUtils.getManagedBean(ViewConstants.USER);
    -- Set the userid from OID in your User object
    user.setUserid(userId);
    -- Note: You may need to do some parsing on your user id string from OID.
    -- Do more stuff here, may switch to a differnt viewId if needed, like an error page.
    return viewId;
    } // END loadUser(FacesContext facesContext, String viewId)
    } //END AuthenticatingViewHandler
    The "JSFUtils.getManagedBean" uses the valuebinding to get the User bean from the FacesContext. We also carry a boolean isUserLoaded in the User object so we're not executing the loadUser code each time a view is rendered. The Visit object just has a navigation trace and other things of interest to us, so you may not care about it.
    A lot of this is from Adam Wiener's post on Sun's JSF forum. I think there's a couple of ways to approach this, with our requirements this works out better. If anybody else has any suggestions, it would be great to hear about them.
    As always, hope it helps out with what you are doing and thanks for the chocolate.

  • ADF 11g: Dynamic JDBC Credentials, how to postback paramters

    I am currently trying out dynamic jdbc example from Steve. An additional implementation I am trying to accomplish is to retain the username in the input field upon a failed login without having it displayed on the url (the example passes parameters back by putting it on the url followed by redirect). Typically this can be done by setting a new request attribute and using a forward instead of redirect, but the example has some interesting code which explicitly avoids a request forward (See below).
        private void forwardToLoginPage(ServletRequest request, ServletResponse response) throws ServletException,
                                                                                                 IOException {
            HttpServletResponse responseHttp = (HttpServletResponse)response;
            responseHttp.sendRedirect(loginPageRedirectName());
    ...Can anyone shed some light on why this is?
    -Wes

    I am currently trying out dynamic jdbc example from Steve. An additional implementation I am trying to accomplish is to retain the username in the input field upon a failed login without having it displayed on the url (the example passes parameters back by putting it on the url followed by redirect). Typically this can be done by setting a new request attribute and using a forward instead of redirect, but the example has some interesting code which explicitly avoids a request forward (See below).
        private void forwardToLoginPage(ServletRequest request, ServletResponse response) throws ServletException,
                                                                                                 IOException {
            HttpServletResponse responseHttp = (HttpServletResponse)response;
            responseHttp.sendRedirect(loginPageRedirectName());
    ...Can anyone shed some light on why this is?
    -Wes

  • Using Oracle8 JDBC Drivers with WebLogic 5.1

    We are currently using the BEA WebLogic 5.1 application server and Oracle 8.0.4. We are using the JDBC OCI driver that came out-of-the-box with the WebLogic software. However, we would like to use the driver developed by Oracle, instead.
    Does the Oracle8 JDBC driver (both type 2 and type 4) interoperate with WebLogic 5.1? If not, what are the problems that prohibit them being used together?
    Thanks... Steve Bursch

    Summarizing from previous threads on this forum (I have not run this configuration myself):
    The main issue is that you will not be able to use Oracle-specific functionality from the Oracle driver.
    This includes all types in oracle.sql, or any APIs on oracle.jdbc.driver.OracleXxxx classes, or JPublisher-generated wrappers for SQL Object Types, collections, or REFs.
    Also, since Oracle does not support side-channel result sets, but requires explicit REF CURSOR out parameters from stored procedures/functions, you will not be able to return REF CURSORs to the client, from stored proedures or functions - the getCursor() API that is required is Oracle-specific and not part of JDBC.
    As long as you limit yourself strictly to standard JDBC types, and do not require the return of result sets from the server, you should probably be fine.

  • Problem with N5800 secure web, won't download emai...

    Hi,
    I just thought I would share my experiences as I couldn't find any comments on this. I brought a Red stripped Nokia 5800 from Virgin and although I could get the email (Mail for exchange) to sync over wifi, it wouldn't do so over GPRS. Plus voice mail hold down the 1 key wouldn't work and hotmail would not load in the browser. The solution I found was to go to Applications > Downloads > Mail for exchange update 2.0.9.158 (or something similar) and now it all works perfectly.
    Apparently it was something to do with the secure data packets which they have fixed in this update.
    Good luck.

    The update didin't fully work, I've since found its a problem with t mobile (including virgin) phones. See:
    http://www.3g.co.uk/3GForum/showthread.php?t=77526
    To fix this problem on the Nokia 5800 do the following, but make sure you note your settings before doing so just incase you need to restore:
    Settings > Connecting > Destinations > wap services > Options > Edit > Options > Advance settings.
    Delete the proxy server setting and the proxy port address. 
    All should then be well.
    Tim

Maybe you are looking for

  • How to call a method from a separate class using IBAction

    I can't work out how to call a method form an external class with IBAction. //This Works 1 -(void)addCard:(MyiCards *)card{ [card insertNewCardIntoDatabase]; //This works 2 -(IBAction) addNewCard:(id)sender{ //stuff -- I want to call [card insertNewC

  • Additional Header Informations in Sender-Proxy for XI Routing

    Hi All, I'm using an ABAP-Proxy to send data to XI. There should be a routing rule to decide, which Business System will be the receiver of the message. As the size of the Message is quite large I'd like to do without Message Mapping. But in this cas

  • HT5557 Can I download an iBook title to my kindle?

    I purchased an iBook title using my iPad.  How do I download it to my kindle?

  • System Preferences and Safari issues

    Hi I have a very concerning issue with system preferences and a smaller issue with Safari (7.0).  When I open system preferences and navigate to the "internet accounts" page and try to remove an account or click the "Advanced" button, nothing happens

  • OBIEE 11.1.1.6.4 NQS error 17001

    Hi Gurus, I am getting below error when trying to pull data from Noetix views (which are in OBIEE rpd) ========================== Error Details: Error codes: OPR4ONWY:U9IM8TAC:O12DL65P State: HY000, Code: 10058. [NQODBC][SQL_STATE: HY000][nQSError: 1