This is a revisit of the ADF Security features under JDeveloper 11g and subsequent deployment to WLS. There are plenty of good examples and documentation on this feature and readers are encouraged to seek those out. This post is my cut of implementing ADF Security to make sure I've all the moving pieces clearly defined in my head. As usual I thought this post may be of interest to readers.
Assumptions
Readers understand the security concepts of authentication and authorization, and readers are familiar with the WLS security "myrealm" concept.
Sample Application
What I find difficult with the JDev 11g Fusion Guide is the raw depth of information to read and assimilate around the security space. Section 29 has 80 odd pages on security which is a lot to digest. Without a doubt security is an important topic but trying to understand the full 80 pages leaves me wiped out.
To make the discussion on ADF Security easier, let's discuss an extremely simple application and then describe what we're attempting to achieve in terms of security.
Consider the following application:
... and the following page flow:
The diagram reveals the following points about our application:
1) The Splash page is a landing page for our application where new unauthenticated sessions will land as they access the application for the first time. This page will be a simple web page with no ADF Bindings. It will provide links to the other 3 pages.
2) ViewBookings, a page showing data using ADF Bindings, will be a secured page. Only authenticated users will be able to access the page and they must have the ADMIN role.
3) ViewEvents, another databound ADF page using ADF Bindings, will also be a secured page. Only authenticated users will be able to access the page, but there are no role restrictions on the page, giving any authenticated user the right to access the page.
4) ViewOrganisations, another databound ADF page using ADF Bindings, will not be secured. Therefore authenticated and non-authenticated users will be able to access the page, and implicitly via this, there are no role restrictions on the page.
(You'll note in the above points I've been careful to identify databound pages that have ADF Bindings (ie. ViewBookings) and those that don't (ie. Splash). The ADF Security mechanisms *only* work for pages that have ADF Bindings and the relating pagedef files. A page that doesn't have ADF Bindings is not secured. This implies how we treat the unbound Splash page vs the bound ViewOrganisations page is different. The mechanisms for this will become apparent further in this post.)
Best practice side note: as a general recommendation while this article demonstrates a page that is totally unsecured via the ADF Bindings mechanism, readers should give strong consideration to create PageDef files for all pages regardless if they are databound or not. This is done by selecting the Page Definitions option from the page's context menu, then allocating them the anonymous-role making them accessible to anyone as explained later in this article. Implementing this gives you a number of advantages:In order to support our application as described in the points above, we'll need a number of security "parts" for our application. Following is a summary of those parts, of which we'll describe in detail next in this document
a) Improved control of the public page's content, displaying different content for authenticated vs unauthenticated users
b) A consistent security implementation across all pages
c) Easier to audit the security implementation



















This is also recorded in the WLS logs. While it doesn't look nice, effectively ADF Security is telling JDOE to get nicked because he doesn't have the ADMIN role. If you wish to handle this in a more graceful way you can make use of the ADF controller's declarative exception handler to route the user to a "friendly" denied-access page, or alternatively we wouldn't have given the user the option to navigate to this page in the first place. Of course this article shows the above for learning purposes.
oracle.adf.controller.ControllerException: ADFC-06000: The ADF Controller caught exception {0} while performing control flow routing. See the stack trace for details.
at oracle.adfinternal.controller.util.Utils.createAndLogControllerException(Utils.java:203)
at oracle.adfinternal.controller.state.SuspendedNavigationState.resume(SuspendedNavigationState.java:54)
at oracle.adfinternal.controller.application.LoginSuccessHandler.resumeNavigation(LoginSuccessHandler.java:117)
at oracle.adfinternal.controller.application.LoginSuccessHandler.doCreateView(LoginSuccessHandler.java:61)
at oracle.adfinternal.controller.application.BaseRequestHandlerImpl.createView(BaseRequestHandlerImpl.java:57)
-snip-
oracle.adf.controller.security.AuthorizationException: ADFC-0619: Authorization check failed: '/ViewBookings.jspx' 'VIEW'.
at oracle.adf.controller.internal.security.AuthorizationEnforcer.handleFailure(AuthorizationEnforcer.java:147)
at oracle.adf.controller.internal.security.AuthorizationEnforcer.checkPermission(AuthorizationEnforcer.java:126)
at oracle.adf.controller.internal.security.AuthorizationEnforcer.checkRead(AuthorizationEnforcer.java:363)
at oracle.adfinternal.controller.activity.ViewActivityLogic.execute(ViewActivityLogic.java:77)
at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:876)
-snip-



The ZK framework provides a variety of paradigms to develop Web applications. One the one hand it is always nice to have options, but on the other this can cause un-intentional paradigm disparities when several developers are using the framework to develop an application without a consistent design. By and far, the Model View Controller pattern has been adapted by various Web applications and frameworks (like Apache Struts, Apache Beehive PageFlows) to develop quality Web applications. The following is an illustration of how an MVC based Web application can be developed using ZK and Spring. ZK has introduced a lot of features that enable easy integration with Spring. The source code of example application is available for download here.
In this article I discuss the seven most important steps to improve your application performance practices. These simple-to-follow practices will help you to improve the way you deal with application performance. Besides eventually improving the performance of your applications it will help you to avoid playing the classical blame game which normally happens when something goes wrong
Red Hat’s desktop virtualization has joined its server virtualization in the 2.2 rev of its standalone KVM hypervisor Red Hat Enterprise Virtualization (RHEV). Like 2.1 seven months ago, 2.2 can host and manage both Red Hat Linux and Windows VMs and now offers a single infrastructure for managing server and desktop virtualization deployments. RHEV for Desktops will deploy Hosted Virtual Desktop (HVD) configurations, a k a Virtual Desktop Infrastructure (VDI). It offers a web-based connection broker for users to access their hosted virtual desktops, coupled with the open source SPICE remote rendering technology for multimedia, including multiple monitors, HD-quality video and bi-directional audio/video for video conferences. Templating, thin provisioning and desktop pooling are also included.
Rich Cannings, Android security lead, blogged about remotely removing an app from people’s Android phones. Recently, we became aware of two free applications built by a security researcher for research purposes. These applications intentionally misrepresented their purpose in order to encourage user downloads, but they were not designed to be used maliciously, and did not have permission to access private data — or system resources beyond permission. As the applications were practically useless, most users uninstalled the applications shortly after downloading them.
IBM filed a breach-of-contract / misappropriation of trade secrets suit in New York Supreme Court last week seeking to hold Joanne Olsen to her non-compete and stop her from going to Oracle for a year. It’s gotten a temporary restraining order according to InformationWeek. Olsen, with IBM for 31 years, was a general manager in IBM’s services unit and was hired by Oracle as senior VP of on-demand services, the SaaS versions of its software, reporting to none other than Larry Ellison. IBM alleges that she knows too much about IBM, its operations, its growth strategies and its potential acquisitions to fall into Oracle’s hands. IBM has gone to court a couple of times in the last couple years waving its non-competes around.
Born to peddle pricey proprietary iron built around exotic multi-core chips that ratchet up the scalability of Java apps – a dangerous exercise that has demanded a $200 million investment from its backers – Azul Systems is now going to start selling software that does pretty much the same thing as its fancy appliances but it’s optimized for the latest class of cheap, ubiquitous, increasingly powerful x86 commodity servers. If the stuff clicks in the next year, eight-year-old Azul may be in a position to organize an orderly retreat from its hardware business, which, as it happens, reportedly just saw record Q1 earnings. It may have hundreds of widgets out there, but software’s an easier sell.
The latest Moyea Web Player V2.4.0.8 is released recently supporting JS application in navigation URL and auto-hide control bar in full-screen mode. Shenzhen P.R.C – Jun, 24th, 2010 - Moyea Software Co., Ltd. (http://www.moyeamedia.com): a rising developer of flash applications for the internet and multimedia software, today officially releases Moyea Web Player V2.4.0.8, which is the Moyea Web Player is one of the best flash video player creating and customizing programs for all-level users to make their own web player which can be embedded in multiple platforms like blogs, websites, forums and so on.
Like other desktop-centric technologies such as anti-malware, PC tune-up utilities (disk de-fragmentation, registry cleaners, junk removers, etc) have primarily been a localized technology that relied on the user installing software on the computer to analyze and resolve problems that affect performance. In his session at the 7th International Cloud Expo, Roland Wartenberg, Chief Virtualization Evangelist at SAP, will introduce a new approach that takes PC tune-up and security strategies to a new level utilizing the power of the cloud as a means of delivery. He will also discuss new methodologies for using the intelligence of the community and the power of the cloud to accomplish computer maintenance at a lower total cost of ownership than traditional desktop technologies.
On Tuesday FinancialForce.com announced a new VMforce connector service that will enable Java developers to quickly and easily build FinancialForce Accounting functionality into their own VMforce applications. The announcement was made at The Grape Escape analyst event in Boston. The FinancialForce VMforce connector provides pre-configured web services, opening the doors for VMforce Java developers that want fast, easy access to enterprise accounting functionality on the Force.com platform. It will significantly reduce configuration and set-up time of the FinancialForce Accounting web services layer. Out of the box, VMforce developers will have access to the accounting functionality they need to make their apps enterprise-ready quickly and easily.
DS Data Systems UK Ltd. is pleased to announce the release of KonaKart v5.0.0.0, a Java-based eCommerce shopping cart application that provides an extensive set of features to enable retailers to successfully sell their products over the internet. KonaKart is a Java / JSP / XML based solution with easy to use Java APIs and a SOAP Web Service interface that allow you to quickly integrate eCommerce functionality into your existing systems. The customizable parts of KonaKart are Open Source and available under the GNU LGPL. The new version includes many new features as well as some bug fixes. Reward Point Functionality has been introduced which allows customers to receive and redeem points online. Support for recurring billing has been added for native billing or to use the recurring billing functionality of the payment gateway. A customer and administrator can now download invoices in PDF format and many new custom and other attributes have been added to the important objects of the system. Full details of the new features can be found at http://www.konakart.com/downloads/ver-5000-whats-new
Face it, setting up Java EE application environments can be a time-consuming, error-prone, and highly variable process. A cloud computing approach to Java EE application environments can address these problems and more. In his session at the 7th International Cloud Expo, Dustin Amrhein, Technical Evangelist for Cloud Technologies at IBM, will describe how the IBM WebSphere test organization utilizes a cloud computing solution to enable the construction, deployment, and maintenance of Java EE application environments for testing purposes throughout the organization. This new cloud computing implementation means decreased environment setup times, elevated asset utilization, and increased test iterations. All of this adds up to make the IBM WebSphere test organization more responsive and agile than it has ever been.
It is widely accepted that large enterprises will start cloud deployment via "private cloud" – that is to say, inside their firewall. But what kind of early applications will these be? Imagine you are the head of manufacturing at a Fortune 500 company running an Oracle Manufacturing application and multiple other source systems. You need to know critical production information instantly, several times a day. And you are moving around constantly. You have an iPad and just a touch gives you those critical nuggets of information. This is advanced analytics using the private cloud. Another example is Project Management, where many moving parts are involved. Again, using touchscreen devices like the iPad you can visualize all aspects of the projects at any instant and anywhere.
Oracle Enterprise Pack for Eclipse allows you to view, create, and manage JPA entity relationships. The Entity Editor provides a centralized view of all entity relationships, allows you to modify entity properties, and allows you to navigate between the object model, mapping associations, and database schema layers. As described previously, the Entity Editor displays relationship diagrams for entities defined in the project.
We've just released the fifth milestone of our 2.0 Java SCA runtime, check out the release announcement for details of what's in it. It's been a little while since milestone four as we've been hard at work updating the runtime to make sure that we pass the proposed OASIS compliance tests for the Assembly, JCA and JCI specifications. Next we're working on some of the new compliance tests that are coming out of OASIS such as the Web service binding tests. In the mean time give milestone five a spin, you can get it from here , and we look forward to hearing your feedback.
This is a 5-minute guide to creating a wizard inside a modal panel. We are going to use a4j:include together with rich:modalPanel. Start page (start.xhtml): <h:form> <a4j:commandLink oncomplete="#{rich:component('panel')}.show();" value="Open" reRender="panel"/> </h:form> <h:panelGrid id="result"> <h:outputText value="#{bean.color}" /> <h:outputText value="#{bean.number}" style="COLOR: #{bean.color}"/> </h:panelGrid> <rich:modalPanel id="panel"> <f:facet name="header">Wizard</f:facet> <f:facet name="controls"> <a href="#" onclick="#{rich:component('panel')}.hide();">Close</a> </f:facet> [...]
Just ran across this and it is a nice technique for those situations where you are limited to table based filtering of data. Typically, I focus on data filtering as far up stream as possible. It is better to filter data at the source (in the where clause for JDBC). Next, I use DataSet based filtering. But sometimes you can't filter at the Source or the DataSet, which is where table based filtering comes in. The issue with table based filters is that there is no good way in the UI to implement conditional filtering. For instance, imagine you have a data driven parameter multi-select parameter and you want to limit the choices to the values from that parameter.
Silicon Valley’s two divas, former eBay CEO Meg Whitman and former HP CEO Carly Fiorina, won their respective Republican primaries in California Tuesday night. Whitman will run against Democratic nominee Jerry Brown, now the state’s attorney general, for governor, succeeding Arnold Schwarzenegger. And Fiorina will try to knock three-term incumbent Barbara Boxer out of the U.S. Senate come November. Both women ultimately won in a walk, largely on the back of their ad campaigns. Carly had the tougher go.
To minimize the invocation time, final methods are optimized (inlined) first by Java compiler and then, during runtime by Just-In-Time (JIT) compiler. Because of this, making methods final is considered a best practice for optimizing performance. If you create classes that may be used by other developers, declaring methods as final will make them not overridable in the subclasses. While today, it may seem obvious to you that a particular method will never ever need to be overridden, you might not properly predict all use-patterns of this class. If this happens, some other developer will have to jump through the hoops to create another version of such a method in a subclass. If you don't want to be cursed in the future, think twice if you really really want to declare this method as final. Do you see any benefits in using final methods?
Azul Systems announced record first quarter bookings and revenue for its fiscal year 2011 ending April 30, 2010, with revenue up 64% over the prior quarter. Customers purchasing Azul appliances and services in the quarter included Farmers Insurance, Success Factors, Saks.com, TD Securities, Juniper Networks, Global Collect and many other Global 2000 companies. Azul Compute Appliances enable business-critical Java-based applications to achieve unprecedented levels of scalability, throughput and response times without the complex setup, management, or high operational costs associated with traditional computing models.
Terracotta, the open source company focused on enterprise Java application scalability and availability, has tweaked Ehcache, the high-performance distributed caching widgetry. The new 2.1 release is said to be a significant upgrade. CEO Amit Pandey says that since Terracotta took Ehcache over last August adoption has accelerated; it currently claims 50,000 users and 100 companies paying for the enterprise version of the stuff including Adobe, News Digital Media, a division of News Corporation, and Raytheon. The hundred signed up in the last four months.
IBM has cut a cloud deal with Ariba, the B2B trading site that’s now billing itself as a cloud. Terms were not disclosed but their arrangement is supposed to enliven Ariba’s eHarmony-type buyer-and-seller matching service by integrating its newly restyled Commerce Cloud with IBM’s LotusLive. Ariba manages what its marketing folk call collaborative inter-enterprise commerce with its web-based Discovery sourcing and sales process solutions. LotusLive will give it cloud-based integrated e-mail, web conferencing, social networking and collaboration services.
Many rich components (from rich: tag library) provide client-side JavaScript API. Being client-side means it’s happening only in the browser. We would have to click submit or fire an Ajax request to submit the changes. How do you find what JavaScript functions are available on a particularity component? The place to find this information is [...]
In a Carlyle Group kind of move, Britain’s former Prime Minister Tony Blair – he of the great rhetoric even if he was Labor – has become a senior advisor on public policy to Khosla Ventures, the $1.1 billion green VC fund run by Sun co-founder Vinod Khosla. Blair’s not merely decorative; he actually knows something about this stuff and is hopefully more honest about it than former US vice-president Al Gore, who’s a partner at Kleiner Perkins. He and his consulting firm Tony Blair Associates are there to pull strings. Meanwhile, RealNetworks chairman Rob Glaser has joined Accel as a venture partner. He will focus on digital media, social media and mobile services.
As much as information technology has changed in the last 10 years, the next decade promises even more significant change. And as cloud technology becomes more prevalent, IT enterprises will be driven to reconsider the status quo around just about everything we know, including physical infrastructure, virtualization, automation, service management, and security. Cloud technology and virtualization of virtually everything means rethinking the economic models around physical infrastructure, the emergence of a new class of providers as well as a greater degree of standardization around virtualized OS and middleware configurations. In his session at the 6th International Cloud Expo, David Milot, managing partner at Unisys, will discuss the increasing expectations from consumers of data center services – instant provisioning and de-provisioning, just for openers. And with a new generation of workers that expect anytime, anywhere access to corporate data, securing your data outside of your data center walls has become a greater business imperative albeit far more difficult. Learn what you need to consider to ensure your enterprise’s foray into cloud computing successfully and securely meets the needs of your enterprise.